The Shortcuts App on iOS has an automation section that lets you schedule shortcuts to run at a certain time. On the Mac, Shortcuts application lacks this ability.

The other morning, my Mac calendar notification went off, and it woke up my wife.

To prevent this, I wanted to make a shortcut that ran every evening to mute the volume on my Mac.

Create the Shortcut

It is a simple shortcut to set the volume to zero percent.

Create a simple mute volume shortcut.
Create a simple mute volume shortcut.

Running Shortcuts from the command line

What you can do is run Shortcuts from the command line and given this capability it means you can schedule it to be run.

shortcuts run "Mute Volume"

Scheduling the Shortcut

There are multiple ways to schedule processes on the Mac, and I decided to use launchd Dameon with launchctl. I chose this because this is the most “native” Mac way of scheduling.

Launched relies on a property list file (“plist”) in a certain format. An example format is below:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.deverman.mutevolumeshortcut</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/shortcuts</string>
        <string>run</string>
        <string>Mute Volume</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>1</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

After the “run” parameter you can change “Mute Volume” to your shortcut name.

Then you can change the hour and minute integers for when you would like the shortcut to run. There are other configurations that you can research online for other scheduling options.

Edit the above XML in a text editor and save it to the following location:

~/Library/LaunchAgents/

You should come up with a reverse domain name as a unique name for this run. I named my shortcut as:

org.deverman.mutevolumeshortcut

Save it in the above folder with a “.plist” suffix:

~/Library/LaunchAgents/org.deverman.mutevolumeshortcut.plist

The to get the system to recognize this you can run this command:

launchctl load ~/Library/LaunchAgents/org.deverman.mutevolumeshortcut.plist

This showed me that in System Settings ->Login Items & Extensions that the shortcut was active:

In System Settings Login Items & Extensions shows your new shortcut launcher.
In System Settings Login Items & Extensions shows your new shortcut launcher.

You can even disable the shortcut here if necessary without editing the plist file.

Ensure the Mac wakes up to run the shortcut

Below is the command you should run to ensure your MacBook is awake when your shortcut runs. You will need to enter your system root password.

sudo pmset repeat wakeorpoweron MTWRFSU 00:59:00

This will make sure your computer is awake Monday (M) through Sunday (U) at 12:59am.

Managing and Validating with Lingon Application

For an extra $24USD, there is an app that manages “.plist” launchd files called Lingon Pro. This is probably great if you want to do more complex scheduling settings.

Lingon Allows you to view your shortcut launch settings.
Lingon Allows you to view your shortcut launch settings.

Summary

It’s a lot of work to schedule a shortcut. Hopefully, Apple will put more attention on shortcuts so we can avoid this, but until then, this should help.

I’ve been using Ulysses for years, and it’s been great, but lately, I’ve realized it’s become a bit of a dumping ground for all sorts of notes and old projects I don’t need anymore. I got into Ulysses because of Markdown—love that simplicity—but over time, I got trapped in their proprietary XML format, which isn’t the easiest to work with outside their ecosystem. So, I decided it’s time to clean house, get back to Markdown, and focus Ulysses on just the content I’m actively publishing. Today, I’m gonna walk you through how to export your Ulysses groups to external folders as Markdown or other formats, and share some of the quirks and workarounds I’ve discovered along the way.

Step 1: Make Sure External Folders Are Visible

Let’s make sure you can see external folders in Ulysses. I actually had this turned off in my preferences for a while, so I had to flip it back on. Head to your Ulysses settings, and check the box for “External Folders” to make them visible in the sidebar. Once that’s done, you’ll see them listed, ready for action.

External Folders should be checked so they are visible in the sidebar

Step 2: Create a New Folder for Your Exports

Next up, let’s create a spot for your exported files. I’m doing this in Finder on my iCloud Drive, but you can store these anywhere. Just a heads-up—if you’re using a cloud service like iCloud, make sure no one else is messing with the files at the same time, or you might run into sync issues. For me, these are personal files, so iCloud works fine. Create a new folder and then drag it into the “External Folders” section in Ulysses. You’ll see it highlight as you drop it in.

Create an Empty External Folder

Step 3: Configure the Folder Format (Markdown or TextBundle?)

When you drop the folder into Ulysses, a dialog box pops up, and this is where you decide how your files are gonna be saved. My goal is Markdown, so I check the box for “Read and Write Markdown Files.” If you leave it unchecked, Ulysses will just store its own format in the external folder, which isn’t what I’m after—I’m trying to break free from that! You can also pick your Markdown extension (I go with .md).

There’s another choice below Markdown called TextBundle or TextPack. I did some digging, and TextBundle is this open standard that a bunch of Mac apps support. It uses the Mac package format to bundle everything together—text, images, all of it—into what looks like a single file. TextPack is just a compressed version of that, but I prefer TextBundle since I want easy access to the raw Markdown files without unzipping anything.

Configure your folder to support only Markdown or Textbundle instead of Ulysses. If you don’t check the box you will just store the Ulysses formatted docs in your filesystem.
Textbundle is an open file format that is better for storing images.

Step 4: Drag Your Group to the External Folder

Now, pick the group in Ulysses you want to export. I recommend dragging the entire parent group over to the external folder. Why? Because if you’ve got sheets at the root of the group (not in subgroups), they won’t come along unless you grab the whole thing. When you do this, Ulysses might warn you about data loss—stuff like images or annotations might not make it through, depending on the format you picked. More detail below.

First drag the parent group to the external folder in Ulysses.
Annotations and Image will be lost when you copy out of the Ulysses library if you choose Markdown. They will be kept if you choose Textbundle.

Step 5: Markdown vs. TextBundle—What Gets Lost?

Alright, let’s talk about what happens when you export. I did some experiments, and here’s the deal:

  • Markdown: If you choose straight Markdown, it’s super clean for text, but images? Forget it. They don’t copy over. You’ll see empty image links in the Markdown file, and there’s no URL or reference to even track down the original image. If your sheets are image-heavy, linking them back manually is a pain.
  • TextBundle: When I dragged my group to a TextBundle-configured folder, the images came along. They’re stored in an “assets” folder inside the bundle, and I can double-click to see them. You can right-click a TextBundle in Finder, choose “Show Package Contents,” and peek inside—there’s an info.json, the Markdown text file, and the assets. It’s all readable and editable with other text editors. The catch? Annotations still don’t survive—Ulysses doesn’t support them in external folders, so they’re gone no matter what.

So, while I wanted pure Markdown files, TextBundle is a solid compromise since it preserves more of my data, especially images.

Step 6: Clean Up the Folder Structure

After exporting, you might notice Ulysses creates a nested folder structure in Finder that mirrors your group hierarchy. I didn’t want two levels of folders, so I went into Finder, selected the visible files (ignore the hidden ones Ulysses uses for tracking), and dragged them up a level. The sidebar in Ulysses updates automatically to reflect this. Then, I deleted the empty subgroup folder to keep things tidy.

Go to the Finder and move the contents of the folder one level down to reduce the folder hierarchy.

Special Case: Exporting from Ulysses Projects

Ulysses has this “Projects” feature where a project takes over the whole sidebar, hiding your external folders. If you’ve got a group in a project you want to export, you’ll need to open a new Ulysses window. Drag the group from the project window to the external folder in the second window. It’s a bit of a workaround, but it gets the job done. This is handy if you’re trying to move away from projects and keep only essential publishing stuff in Ulysses.

Drawback: Publishing to WordPress with External Files

One bummer I ran into is with publishing to WordPress. If your content is in a TextBundle, the images preview fine in Ulysses and seem to publish to WordPress without issues. But if you’ve got a Markdown file with images referenced in a subfolder in Finder (not as part of a TextBundle), Ulysses won’t upload them to WordPress. It just fails in the preview stage because it doesn’t translate those file system references. So, if blogging is your thing, TextBundle might be your best bet for exporting while keeping images intact for publishing.

Files referenced in the file system won’t be converted and uploaded to WordPress like they are if you use the Ulysses native library.

Final Thoughts

That’s pretty much it, folks! Exporting from Ulysses to Markdown or TextBundle is a great way to declutter and get your content into a more portable format. TextBundle ended up being my go-to since it saves images, even if I lose annotations. It’s not perfect, but it works for what I need. If you’ve got questions or run into snags, drop a comment below (if you’re reading this on my blog or watching the video on YouTube), and I’ll do my best to help out.

The Mac supports dictation. I thought it was all done locally, but that might not be the case for all things: “Dictation processes many English voice inputs on your Mac. Information will be sent to Apple in some cases, including for search.” This is according to the System Settings keyboard page.

MacWhisper Pro has been adding more and more audio capabilities, and I just noticed it now has a dictation setting. Once I gave it permission to access my system, I set it up to activate after pressing the right “option” key. This triggers the dictation and then does some processing with an AI service.

It turns out that you can add Ollama as an AI service to MacWhisper and choose a local model. I added “llama3.2:latest” as the Ollama service. Then back to the Dictation setting, I was able to select Ollama and when I tested dictation. Post-processing can happen specific to the current app you are using. Now all the dictation and any AI post-processing should be happening locally on my computer and I should be able to avoid the wishy-washy behavior of the built-in dictation.

I preordered the new Mac App called Pieoneer when I saw the cool design of the app.

My first stumbling block was when I forgot what the last symbol on the right in this graphic means:

After searching, it is of course the “Tab” key, but normally an App would let you know that. Strangely, if you click on the button and customize the keypress it writes “Tab” instead of the symbol.

What stopped me from using the program after I figured out how to call the Pie on my screen was that to select an option, I had to move my hand to my trackpad and then click.

For me, a launcher keeps your hands on the keyboard, and so I’m going to stick with the built-in spotlight. It was a promising design.

I was trying to see if I could enable my iPad as a second screen on my work MacBook. Pro like I use it for my personal MacBook Pro, however I found in a support document that you must have an iCloud account connected to use the continuity feature. Unfortunately, my IT department doesn’t allow me to log in to any iCloud account, so I’m stuck with a digital divide between my MacBook Pro and iPad Pro.

Trying to find how the Apple Watch Ultra has a better GPS than the other Apple Watches and found an article from The Verge that’s a good read. Original watches use the GPS L1 band and there is now a GPS L5 band that is starting to roll out but has not completely. The L5 band performs better in dense environments with tree cover or skyscrapers. Apple Watch Ultra combines the data from both bands, Wifi Signals and cell towers for better accuracy.