Mac OS X: Keybinding DefaultKeyBinding.dict Problems

, , …,

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, ⌥ Opt with any of “e u i n `” does not work. Also, some ⌘ Cmd key you cannot override. For example, ⌘ Cmd 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:

NSEvent Class Reference, quote:

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 【⌥ Opt+‹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 {⌘ Cmd, ⌥ Opt}.)

However, in OS X 10.4, you can switch modifier keys to any other in 〖System Preferences ▸ Keyboard & Mouse〗. For more detail, see Mac OS X: How to Swap Control, Caps Lock, 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 【⌘ Cmd+Tab ↹】.

blog comments powered by Disqus