Mac: Key Remapping and Keybinding Tools
This page is a list of tools and tutorial for remap keys, create keyboard shortcuts, layouts, etc.
Go to the Mac preference panel to swap modifiers.
Karabiner (was known as KeyRemap4MacBook) lets you do advanced key remapping.
For example, distinguish left Ctrl vs right Ctrl, remap Esc, remap Enter ↵ key, etc.
Add/Change Keyboard Shortcut in Specific App
Mac OS X since 10.4 lets you add/change keyboard shortcut in a specific app.
Just 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 you'll lose 【⌘ command+c】.)
- Numerical keypad keys cannot be used as trigger. (For example, you cannot make the number pad keys as personalized extra function keys.)
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.
App Launchers, General Key Macro Utilities
• Quicksilver, home page At http://qsapp.com/. 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】).
• $$$ Keyboard Maestro At keyboardmaestro.com A basic key macro software. Good, but a bit expensive.
• $$$ QuicKeys At startly.com. A comprehensive automation software, with key macro features, and also key macro recording abilities. I used it in 1990s for 10 years and find it the best. It was the number one most touted productivity enhancement software in Mac community in the 1990s. The company changed hands a few times over the years. The first Mac OS X version released around 2001 is not so good. Since then i haven't used it. Don't know how good it is today.
Text Editor Keybinding Behavior, Insert Date, Custom keys for Math/Unicode Symbols
You can use Mac OS X's system-wide mechanism by creating a key config file
DefaultKeyBinding.dict. See: Creating Keyboard Layout in Mac OS X.
〔►see Emacs: How to Define Keys〕
〔 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!
USB Overdrive is another low-level USB tool. I haven't used it, but have heard good things about it.
〔 USB Overdrive By Alessandro Levi Montalcini. At http://www.usboverdrive.com/USBOverdrive/News.html〕