/* DATE: 2010-06-15 VERSION: 1.0 AUTHOR: Xah Lee DESCRIPTION: Mac OS X keybinding file for the ErgoEmacs keybinding for Dvorak layout. INSTALL: Rename this file to “DefaultKeyBinding.dict” Then, place the file in this dir: “~/Library/KeyBindings/DefaultKeyBinding.dict” Create the “KeyBindings” dir if you don't have it already. Go to your system preference, “Keyboard & Mouse” panel, and swap Control and Command key positions. So, Control is right under your thumb. Now, launch or re-launch any Cocoa application, such as TextEdit. The app should now use ErgoEmacs keybinding. If you are using emacs, you might want to put the following lines in your “.emacs”: (setq mac-control-modifier 'meta) (setq mac-command-modifier 'control) These lines works for Cocoa emacs, may not work for Carbon Emacs. Some references: • How To Create Keybinding In Mac OS X http://xahlee.org/emacs/osx_keybinding.html • ErgoEmacs Keybinding http://xahlee.org/emacs/ergonomic_emacs_keybinding.html • How to Swap Modifier Keys on OS X http://xahlee.org/emacs/osx_swapping_modifier_keys.html If you like to use Option key instead of Control, you can change all ^ to ~ in this file. However, due to some limitations of the OS X keybinding system, the following won't work: • Opt+n for move cursor right • Opt+e for deleting a char to the left • Opt+u for deleting a char to the right */ { "^c" = "moveUp:"; "^t" = "moveDown:"; "^h" = "moveLeft:"; "^n" = "moveRight:"; "^r" = "moveWordRight:"; "^g" = "moveWordLeft:"; "^d" = "moveToBeginningOfLine:"; "^D" = "moveToEndOfLine:"; "^C" = "pageUp:"; "^T" = "pageDown:"; "^G" = ("moveToBeginningOfParagraph:", "moveLeft"); "^R" = ("moveToEndOfParagraph:", "moveRight"); "^H" = "moveToBeginningOfDocument:"; "^N" = "moveToEndOfDocument:"; "^e" = "deleteBackward:"; "^u" = "deleteForward:"; "^." = "deleteWordBackward:"; "^p" = "deleteWordForward:"; "^:" = "redo:"; "^;" = "undo:"; "^q" = "cut:"; "^Q" = ("selectAll:", "cut:"); "^j" = "copy:"; "^J" = ("selectAll:", "copy:"); "^k" = "paste:"; "^8" = "selectWord:"; "^ " = "setMark:"; }