Keyboard Maestro is my favorite applications ever. It's the one-stop-shop for an astounding array of powerful features. It can be used to replace ton of other third-party utilities. Some examples of what it can do:
1. You can easily implement your own window manager in it, e.g., replaces Moom or Magnet.
2. You can bind any AppleScript, shell script, etc... to a keyboard shortcut.
3. You can record and replay GUI macros, e.g., like Vim and Emacs macros but for any application.
4. At has a ton of built-in actions to script practically anything about your system, e.g., sleep, simulating media keys, image manipulation, etc... I suspect a lot of uses of Karabiner can be replaced by Keyboard Maestro.
5. It has a built-in clipboard history, with powerful features, like, processing an item from the clipboard with a Keyboard Maestro macro. One I use sometimes is running OCR on a screenshot I have on the clipboard.
6. You can bind any menu item in any application to a keystroke. E.g., you can rebind menu items to other keys, or adding key bindings to menu items that don't have keyboard shortcuts.
7. You can create custom command palettes (i.e., like ⇧⌘P in VS Code) for applications. For example, the command palette in Photoshop is awful, so I just made one for my common actions in Keyboard Maestro instead.
All of the above can sync seamlessly between computers with any file sync service (e.g., Dropbox). It's probably the best sync I've ever used, in 5+ years of use I've never had even the slightest hiccup. I don't bother using macOS built-in settings for things Keyboard Maestro supports for this reason. Put it in Keyboard Maestro and it will automatically sync to any Mac I use (I always install Keyboard Maestro).
> 6. You can bind any menu item in any application to a keystroke. E.g., you can rebind menu items to other keys, or adding key bindings to menu items that don't have keyboard shortcuts.
This is a macOS feature (either globally or per app) and doesn’t need a separate app. For example, I have ⇧⌘M mapped to Window > Zoom (the inverse of Minimize).
This is now hidden deep in System Settings > Keyboard > Keyboard Shortcuts button > App Shortcuts.
I just want to call out the how nice it is to have a global view of all the keyboard shortcuts like this. Including for applications you might not have open. It makes it a million times easier to fix up situations where two applications want to use the same keyboard shortcut and that causes some kind of issue… which is usually not a problem but can be a major pain when one or more of the conflicting shortcuts are global shortcuts that don’t require the application to have focus or be in the foreground.
Being able to jump into this settings pane and find the issue then simply remap one … infinitely easier than fixing this kind of thing on Windows… where last time I tried literally none of the “list keyboard shortcuts from all open applications” tools I could find worked at all on Windows 10.
How are you listing keyboard shortcuts on Windows? I have this problem all the time where I want to bind some Autohotkey sequence to a keystroke and can’t find one not in use. I would love some way that shows me all (or even most or even some!) shortcuts used by all the applications I’ve installed.
Failing that, it would be nice if there was a convention that some modifier sequence was reserved for user and should not be used by applications.
Oh, I wasn't denying the issue exists, I was just arguing that all OS are bad at this, and Mac is no exception
I'm not listing shortcuts on Windows, I've read that it's impossible due to the way shortcuts are registered, you can at most find a list of shortcuts that aren't in use by any app by trying to set/unset them. And anyway the OS (nor the MS apps like Office) isn't even good enough to list its own shortcuts
The solution to this problem is to ignore the app and bind to whatever is best for you, AHK overrides apps, so native shortcuts won't interfere.
And then if an app has a shortcut that you want to use, you could also rebind it natively within the app or if the app is dumb, just do it in AHK to `if app {my_key_combo::app_key_combo}`
Then re. search: in AHK I add comments to keybinds that allow me to easier find a shortcut across all ahk scripts in a text editor (but this isn't a perfect system either, I don't know of a perfect updated one)
> would be nice if there was a convention that some modifier sequence was reserved for user and should not be used by applications.
That's way too limiting, besides there isn't even a much simpler convention: every app should allow listing and changing every single keybind it uses
Unfortunately it does since there is this dumb limitation of 1 shortcut per menu item
Also there is a big UI difference between having to type the whole thing from scratch (with easy typos ruining it and having to remember the separator) vs just selecting an item
(although the default has the benefit of a menu hint and also works when menu is renamed)
Some applications make use of this macOS feature, like CheatSheet or Shortcat. I wish other platforms had a similar feature, I only know of vaguely similar behaviour in Vim/Emacs which which-key.
1. You can easily implement your own window manager in it, e.g., replaces Moom or Magnet.
2. You can bind any AppleScript, shell script, etc... to a keyboard shortcut.
3. You can record and replay GUI macros, e.g., like Vim and Emacs macros but for any application.
4. At has a ton of built-in actions to script practically anything about your system, e.g., sleep, simulating media keys, image manipulation, etc... I suspect a lot of uses of Karabiner can be replaced by Keyboard Maestro.
5. It has a built-in clipboard history, with powerful features, like, processing an item from the clipboard with a Keyboard Maestro macro. One I use sometimes is running OCR on a screenshot I have on the clipboard.
6. You can bind any menu item in any application to a keystroke. E.g., you can rebind menu items to other keys, or adding key bindings to menu items that don't have keyboard shortcuts.
7. You can create custom command palettes (i.e., like ⇧⌘P in VS Code) for applications. For example, the command palette in Photoshop is awful, so I just made one for my common actions in Keyboard Maestro instead.
All of the above can sync seamlessly between computers with any file sync service (e.g., Dropbox). It's probably the best sync I've ever used, in 5+ years of use I've never had even the slightest hiccup. I don't bother using macOS built-in settings for things Keyboard Maestro supports for this reason. Put it in Keyboard Maestro and it will automatically sync to any Mac I use (I always install Keyboard Maestro).