This page is a collection of methods and utilities for keybinding, keymapping, for Mac OS X.
For more advanced modifier remapping (⁖ distinguish left Ctrl vs right Ctrl, remap Esc, map ▤ Menu key, remap Enter ↵ key …), see:
Mac OS X since 10.4 lets you do that. Just go to System Preferences, Keyboard ＆ Mouse, Keyboard Shortcuts. Then click the + sign at button.
Note: This mechanism is not very flexible:
Buy a Microsoft keyboard then use the bundled IntelliType Software. Note: depending on what keyboard model you buy, not all features of IntelliType will be available. But basically, if the keyboard cost $30 or more, or has many special keys, most features will be there.
Highly recommended. With this solution, you get a functional keyboard, and with a software that does all launcher/shortcut common needs. No need to spend hours tweaking keymaps or config files.
For detail, see: Microsoft IntelliType Review.
For Microsoft keyboard, i recommend:
• Quicksilver (software), home page @ http://qsapp.com/. A app launcher. Assign hotkey to launch/switch/open apps or files. The hotkey can be single key (⁖ F1) or combo-key (⁖ 【⌘ Cmd+F1】).
• $$$ Keyboard Maestro @ keyboardmaestro.com A basic key macro software. Good, but a bit expensive.
• $$$ QuicKeys @ 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 hand 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.
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.
If you use emacs on the Mac, see: Emacs Keybinding, Keyboard, Articles Index and How to Create a APL or Math Symbols Keyboard Layout ⌨.
If you are really serious about key mapping, that you want to change any key to any key. For example, weird things like making Tab ↹ as ⌘ Cmd, make ⌥ Opt type Space, make the number keypad keys as extra function keys, re-interpret the USB signals as they come in, then, these are the tools. (Note: i haven't really used them.)