Mac OS X: Keybinding DefaultKeyBinding.dict Problems

By Xah Lee. Date: . Last updated: .

This page documents some problems of using OS X's DefaultKeyBinding.dict keybinding scheme. If you don't know what that is, see: Creating Keyboard Layout in Mac OS X .

The system does not work in all applications and they do not work for some key combinations. The following are some reasons and problems.

Does Not Work in All Applications

The system does not work for Apps that is written in Carbon framework.

It works for Cocoa apps, but not all Cocoa apps will use your new keybindings. Examples of applications that do not use your keybinding (As of ):

Examples of applications i've tested that do use your new keybinding:

Does Not Work for All Keys or Actions

Even in applications that support the DefaultKeyBinding.dict, not necessarily all definitions with special keys work. For example, ⌥ option with any of “e u i n `” does not work. Also, some ⌘ command key you cannot override. For example, ⌘ command with any of “z x c v” won't work.

I don't have a complete list of keys that cannot be overridden, nor did i find a official doc that explains why in detail. The closest i found is:

Note that some function keys are handled at a lower level and are never seen by your application. They include the Volume Up key, Volume Down key, Volume Mute key, Eject key, and Function key found on many iBook and PowerBook computers.


Unicode Symbols with Customized Option+key Layout Not Reflected in Keyboard Viewer

If you have defined ⌥ option+key to insert Unicode chars, Keyboard Viewer does not show your new keymap.

Cannot Remap Modifier Keys

The DefaultKeyBinding.dict scheme is not capable of remapping modifier keys. (such as swapping {⌘ command, ⌥ option}.)

However, in OS X 10.4, you can switch modifier keys to any other in menu [System Preferences ▸ Keyboard & Mouse]. For more detail, see Mac: Swap CapsLock Control Option Command Keys .

Cannot Function as Key Macro

It seems to me, you cannot use it to define a key macro. For example, you might want set F1 to type a key combo such as ⌘ command+Tab.

Xah Keyboard Guide