Keyboard shortcut modifier strategy

I use a lot of keyboard shortcuts, but it’s getting a little out of hand!

What strategy do you use for deciding which modifiers to use in a shortcut? For example, what modifier for launching apps? For window arrangement? For navigating app tabs? Expanding/collapsing outline items (like the Finder, Omnifocus and OmniOutliner) System commands, like tagging, dictation, screenshots, clipboard history, etc.

There are probably way too many possible “categories” of tasks, especially when you get into individual apps.


I use Keyboard Maestro for this. A lot of people here combine KM with Karabiner Elements to create a “hyper” modifier (shift-cmd-ctrl-opt), but I can’t get it to work correctly so I use cmd-ctrl-opt-[alphanumeric-key] to launch apps. For arranging windows I use cmd-option or cmd-ctrl-opt-[arrow-key]. KM supports per-app shortcuts too.

I’m one of the Keyboard Maestro users, especially since learning the Palettes trick from David’s course.
So now, I only use the hyper key and overload the keyboard, here’s two examples.

To type ß (which is actually just option-S but I’d never remember) I press hyper-K to get my Keyboard palette, then G to get my Greek letters then B to get ß.

For window arrangement, hyper-(left arrow) gives me my palette to choose:

  • 1 for 1/3 of screen
  • 2 for 2/3
  • h for half
  • m for middle third

Anything school related is hyper-H, pasting related is hyper-V, email related is hyper-E etc etc.
This means I am categorising tasks like you do, I suppose.

It’s not the fastest way to do things, but the mental overload is tiny and I love that as it frees my mind for more important things.

1 Like

The Palettes trick is to make a Palette that opens with your Hyper key.
The Palette contents are set to be all the macros in one folder.

You could just give all the macros the same trigger key, but that gets more cumbersome to maintain.
Instead, you don’t provide a trigger for the individual macros, you only put them in a folder/group, and provide a trigger for that group via a palette.

1 Like

Maybe you know this already, but β (beta, the greek letter) and ß (eszett, the german letter) are not the same.

Yes, it was a bad example to try and do on my iPad!
(you’re right though that I hadn’t spotted opt-S was the wrong one, but my shortcut does give me the right one)

1 Like

Good idea to use the palettes trick for things you don’t use often enough to make muscle memory. I use it for some things, but haven’t thought of it this way… Thanks!

I have a palette for every application that has KM macros defined. The hotkey is always ^\ and all pallets are configured the same. Here’s the Safari palette for example:

The macros in the macro group controlled by this palette (for example)

and the palette

Notice that KM ignores strings like 51) when displaying palettes, etc. This is useful for sorting and organizing the content of macro groups or palettes. I also use single character hotkeys on each item of any palette.

So, across all the apps that have KM palettes, the user experience is the same.

I only have to remember one hot key.


Thanks for posting this @GraemeS!
I’ve been thinking lately about how shortcuts are structured in Emacs, and how that differs from the system-style shortcuts most commonly used in macOS.
Using spacemacs as an example, the trigger key is space

  • Save file:
    space f s
    f for file, s for save
  • Save to a different name (e.g. save copy)
    space f c
    f for file, c for copy
    Whereas in, say, Textmate, these would be:
  • Save file:
    ⌘ s
  • Save to a different name (e.g. save copy, or save as)

This trivial case isn’t very good example, but hopefully it illustrates that shortcuts in Emacs (i.e. Spacemacs) are mnemonic (f means file, s means save), whereas the usual shortcuts on macOS programs are something like ⌘⌃⇧r. Perhaps the ‘r’ is relevant to the task at hand, but the modifier keys are meaningless.

Also, space f in Spacemacs opens a menu of available commands, and the KM palettes emulate that nicely. Definitely something I’m going to look into.

1 Like

I was curious to look into something like this after seeing this post a couple of weeks ago on using the space bar as the hyper key. It seemed like a nice idea as I never hold down space these days for some reason.

I can’t remember who put me into this, and I haven’t tried it yet either.

Probably me :slight_smile:

Using SpaceFn I had some trouble with spaces being dropped, and I’ve since created my own complex-modifications based on a couple available from the KE website, and my own thoughts.

  • Hold space
    – ijkl act as arrow keys
    – yn are page up/down
    – df are delete (backspace) and forward-delete
    – er delete word right and left
    – s delete to beginning of line

  • Hold the a key
    – hj parentheses ()
    – kl square brackets []
    – l; curly braces {}

The "hold the a" shortcuts are sometimes a little fiddly, ]d rather than getting “and”, I’ll sometimes get ]d as I did earlier in this sentence. The rational behind using a is that it’s on the homerow, and my pinky is sitting there most of the time.

It’s a work in progess.

I’m moving in the direction of minimal keyboard shortcuts using Keyboard Maestro palettes as well.

Using BetterTouchTool with a Trackpad, a four finger swipe down (think grabbing something and pulling it towards you) brings up a “master” palette:

That goes to most used Apps or most used actions.

I do a lot around filing and organizing information so I have an extensive Palette arrangement for Finder:

While intensive to initially set up, I find not having to deal with sorting and remembering keyboard shortcuts worth the investment.

1 Like