Mac Keyboard Tools
Here's a guide of keyboard shortcut and automations tools for the Mac.
I created a Dvorak Keyboard Layout using ResEdit on Mac back in 1992, and been using QuicKeys back then, it was the best automation tool. Also many app launchers and keyboard tools over the decades that came and went. On this page, i only list the latest ones that's still available.
Mac: Swap Control, Caps Lock, Option, Command Keys
Karabiner-Elements (was known as KeyRemap4MacBook) lets you do advanced key remapping.
Download at [Karabiner-Elements At https://karabiner-elements.pqrs.org/ ]
Karabiner is very advanced. You can:
- Distinguish left Ctrl vs right Ctrl, remap Escape, remap Enter key.
- Set Space bar to be Ctrl or ⌘command when held down with another key, but as space itself when no other keys is pressed at the same time.
- Set keys to be device dependent. i.e. You have 2 keyboard. You want F2 to do different things.
Change Keyboard Shortcut in App
Mac OS X since 10.4 (year 2005) lets you change keyboard shortcut in a specific app.
Go to System Preferences, Keyboard and Mouse, Keyboard Shortcuts. Then click the + sign add button.
Note: This mechanism is not very flexible, because:
- It only lets you create a key for a action that has a menu. (for example, you cannot define a key to launch a app.)
- Once you created a hotkey, the original key will be lost. (for example, if you set F1 to Copy, then ⌘command+c won't work anymore.)
- Numerical keypad keys cannot be used as trigger. (For example, you cannot make the number pad keys as personalized extra function keys.)
Suppose you have a gaming mouse, and you've set buttons to do copy and paste, across any computer running macOS. But you've also made F2 as copy on your home Mac, so you can do them easily from keyboard too. Now, your mouse copy button don't work anymore, because ⌘command+c no longer works.
Get a programable keyboard with onboard memory. This is the best solution. Because you can plug the keyboard in any computer and it'll work with your settings.
See Programable Keyboards with Onboard Memory
or, get a programable keypad.
App launchers are primarily designed to launch apps, open files, run scripts. You set a key to do them, or, a hotkey that pops up a dialog, then type any letter to launch or search.
Quicksilver. A app launcher. Assign hotkey to launch/switch/open apps or files. The hotkey can be single key (For example, F1) or combo-key (For example, ⌘command+F1).
Alfred Automation Tool
Hammerspoon Automation Tool
Using lua as scripting language.
Text Editor Key Behavior
This is macOS's system-wide mechanism, for creating keybinding to control cursor movement or editing operations.
See: How to Change macOS Keybinding
USB Overdrive is low-level USB tool. It lets you remap key or mouse buttons at USB level.
[USB Overdrive By Alessandro Levi Montalcini. At http://www.usboverdrive.com/USBOverdrive/News.html ]
View Keypress and Keycode
Install [Karabiner-Elements At https://karabiner-elements.pqrs.org/ ]
It'll also install a “Karabiner-EventViewer”. It's in your Applications folder.
Launch it, and press key or mouse button and it'll show the keycode.
[ControllerMate At http://www.orderedbytes.com/controllermate/. Commercial. USB interface mapper. Seems to let you remap any USB input device's signals in flexible ways, including mouse.]
[review of ControllerMate by Jonny, 2017-02-27.]
I've been using ControllerMate for several years now and I have to say that it is really an amazing and extremely powerful piece of software, and very flexible! The developer is also very quick to respond to questions on the forum and to come up with solutions which require coding (custom patches or add ons to download, or updates to download- depending on the situation). There is a bit of a learning curve! And while the interface is logical and straightforward, getting used to the basic underlying logic behind it all takes some time. But I can't even begin to explain all the unique and creative things you can do with it.
But I'll give a could examples... I quite easily was able to switch around and re-program lots keys on my keyboard (KM0Z1-5N6P and was able to physically switch the keys around as well to match), I also did some more complicated reprogramming using the Apps/Menu key almost like a new modifier, mainly to launch apps but also to access the higher Fn-keys (adding 10 to what's printed on the keyboard — only up to F20 though which he says is the MacOS limit).
I also customized my trackball so that if I double-middle-click-hold the ball becomes an any direction scroll “ball”.
Another major product was creating a very unique, customized programming for a Logitech G13. I did use the native software for just a couple of functions- basically for setting up the backlight colors for the various “pages” and configuring the applets. One cool thing I did that I use all the time is to setup the joystick to switch “Spaces” (Mission Control), and to move windows between my multiple monitors, and to move windows between “Spaces” depending on which of the adjacent button(s) I'm holding. It's SUPER easy and convenient! I also use those buttons (pretty much designed to be mouse buttons) as shift-life modifiers to access deeper levels of the closer buttons (in addition to and unique for the 3 ‘main’ pages which are built in). In some cases I set them up to trigger regular hotkeys, sometimes I create custom hotkeys with the keyboard control panel (typically using combos involving keys that aren't even on my keyboard or that are very difficult to type), and sometimes I have them trigger AppleScripts that native commands or use GUI control but only if the app is already running.
Honestly that barely even scratches the surface of all the things I know that ControllerMate can do which is only a fraction of what it can really do!
If you have a question, put $5 at patreon and message me.