New Mac user & photographer – Some Keyboard Maestro macros not running (NAS, Trash at login, Capture One folder move)

Hi everyone,

I’m pretty new to Mac (recently switched from Windows for work), and while I’m not completely unfamiliar with macOS or scripting, I’m definitely still finding my footing—especially with Keyboard Maestro.

I’m a photographer and use Capture One heavily in my workflow. I’ve created (or attempted to create) a few macros that don’t seem to run as expected, and I’m trying to figure out whether I’m missing something obvious—permissions, timing issues at login, macOS restrictions, or general limitations.

The three macros I’m struggling with are:

  1. Mount all NAS volumes in Finder at login
    The goal is to automatically mount all my NAS shares when I log in.

  2. Empty the Trash at login (before Time Machine runs)
    Yes, slightly OCD—but I’d like the Trash emptied automatically at login, before Time Machine kicks in.

  3. Move my local Capture One “Photo” folder to a NAS folder
    The idea is:

    • Move the local Capture One photo folder to a NAS directory, when closing Capture One.

    • The new folder name on the NAS should be the date of the move.

    • Once the move is confirmed successful, delete the original local folder.

I’m not asking anyone to write the scripts/macros for me. I’d really just appreciate guidance in the right direction:

  • Am I running into macOS security restrictions (Full Disk Access, Automation permissions, etc.)?

  • Are login-triggered macros unreliable for network-dependent tasks?

  • Are there known limitations with Finder, Trash, or network volumes that I should be aware of?

  • Is there a better architectural approach for something like the Capture One folder move?

For context: I do have other login macros that work perfectly fine—e.g., killing Apple Music on startup and setting system volume to 25% at login. So Keyboard Maestro itself is running at login.

Any pointers, conceptual advice, or “you’re thinking about this the wrong way” feedback would be greatly appreciated.

Thanks in advance!

It's very difficult to say without a) knowing how things are not working, b) error messages, if any (make sure you've allowed Notifications from Keyboard Maestro!), and c) seeing some or all of the macros themselves.

There are different ways to empty Trash, for example. Some of those are (relatively) independent of current context (doing it via AppleScript) but some require a certain context (like switching to Finder and sending the ⌥⇧⌘⌫ keystroke) which could be interfered with by your other macros.

Also:

KM can move and rename a folder in one operation. Is there a particular reason that you are copying, renaming, then deleting the original?

Thanks for your thoughts and reply.

I think I have sorted the Trash issue, and created a trigger by shortcut and not by closing the OS.

The thinking behind the folder operations is that I add my uploaded camera files as DNG into the desktop folder, for example, “Camera xxx Black and White” and/or “Camera yyy Color”. I start adding the files from that folder to my Capture One library and begin my post-processing. What I would like to do, after I create the final prints and save them in the client's folder, I would like a macro that will execute the following after I click on closing capture one. The content of Camera yyy Color will be moved to a folder named Camera yyy Color on my NAS. However, before doing this, it should create a folder with the current date, just so that i can keep this folder name as part of the clients project(s).

Idealy, and I’m trying to figure this out if I can set up Capture One’s projects and profiles stored on the NAS, the files should be stored in the NAS Capture One Library, but here i have to deal with another technical challange and that is making sure the NAS folders are visible in finder from the start of loging in into Mac (I had this working in Windows, but i need to figure out why this is not working by default in Mac)

Easy bit first...

  1. In Finder, connect to your share(s) and, since you want to automate the mounting, tick the "Remember this password..." box
  2. From Finder's "Go" menu select "Computer" (or hit ⇧⌘G)
  3. Open System Settings, go to "General", then "Login Items & Extensions"
  4. Drag your share(s) from the Finder window to the "Open at Login" box in the System Settings window

The more specific you can be when planning your macros the quicker they'll be to write. Do you want to move the contents of "Camera yyy Color", leaving the now-empty directory on the Desktop? Move the "Camera yyy Color" to the directory "YYYY-MM-DD" on the mounted volume, leaving nothing on the Desktop? Move the "Camera yyy Color" to the mounted volume, renaming it to "YYYY-MM-DD"?

Assuming "yyy" is a placeholder for some variable text, will there be more than one "Camera something Color" on the Desktop? If so, how do you know which to process when you close Capture One? That'll suggest ways you can make the choice in your macro.

It's always good to manually go through your workflow at least once, taking notes along the way of both what you do and the decisions you make -- it's all to easy to say "I'll then move this folder to...", forgetting you'll need a way to define "this folder" in terms your macro can understand.

Starting in easy-mode, assume that "yyy" is static -- the folder will always be named "Camera yyy Color" -- and you want to move it from your Desktop into today's "YYYY-MM-DD" folder at the top of your share (my share's called "Scratch"). You can't do it all in one Action, you need to create the folder if it doesn't exist then do the move:

The only tricks here are using the %ICUDateTime% Token to generate today's date in the format you want and setting the "New Folder" Action's options so it doesn't abort the macro if today's folder already exists:

The "Move File" Action has lots of options -- I'm assuming you have KM v11 so can use the "Move" option, in earlier versions you differentiate between moving and renaming by the path in the "to" field (as detailed on the Wiki page).

See how you get on with the above as a starting point, and don't be afraid to shout for help if you get stuck -- it'll be because of my poor explanation!