Emacs rocks. It is a highly customizable text editor and one of the reasons I continue to use Linux. The Dvorak keyboard layout rocks too, because it streamlines typing and places the most commonly used letters in the most easily accessible positions. And the Kinesis Advantage keyboard rocks: it is a highly customized keyboard that makes typing effortless. But Emacs on a Dvorak keyboard sucks. And Emacs on the Kinesis Dvorak keyboard really sucks. In fact, it's essentially unusable. But emacs is customizable. That's what this is about: making the Kinesis keyboard usable for writers that use the dvorak keyboard layout and like emacs. That probably boils down to me alone on earth, but so be it: customizability is what makes Linux, Emacs, and even the Kinesis, so damn useful, and if you're a writer, you may as well make your environmental useful and comfortable. Let's begin. In essence, the following code for your .emacs configuration file takes the most useful functions to a writer and places them on positions on the keyboard that make them convenient, and does away with a bunch of emacs annoyances. The result is a lean, mean, writing machine where you barely have to reach in order to have the power of emacs at your fingertips. Copy the following code into your .emacs file. Actually, on my SUSE box, this code became my .gnu-emacs-custom file, but copy and paste it wherever your system is configured to find its customizations. The functions we emphasize are those that facilitate easy cursor movement between words, sentences, and paragraphs, facilitate spell checking (and also the ability to turn off this sometimes distracting feature), inserting lines, and deleting letters, words, and sentences. Of course everything else emacs is capable of is still available to you, as is almost every C-x command you are used to, but this places the essential stuff under your fingertips. Furthermore, it remaps Undo to C-u so it's just one keystroke. You will have under your left fingers the commands for going back through sentences, and under your right fingers a group of movement commands arranged roughly in a diamond. Lift your left middle finger just a bit to get the cool ispell word-complete feature, and just below that key find what used to be C-u, the universal modifier, for repeating a command a number of times. You are now properly equipped for typing without taking your fingers off the keyboard. Happy writing! (longlines-mode) (set-background-color "black") (set-foreground-color "CornflowerBlue") (tool-bar-mode) (global-set-key "\\C-a" nil) (global-set-key [(?\\C-a)] 'backward-word) (global-set-key [(?\\C-e)] 'forward-word) (global-set-key [(control shift a)] 'backward-sentence) (global-set-key [(control shift e)] 'forward-sentence) (global-set-key [(control backspace)] 'backward-kill-word) (global-set-key [(control shift backspace)] 'backward-kill-sentence) (global-set-key [\\S-] nil) (global-set-key [\\S-] 'start-kbd-macro) (global-set-key [\\S-] 'end-kbd-macro) (global-set-key [(control p)] 'isearch-forward) (global-set-key [(control y)] 'isearch-backward) (global-set-key [(control .)] 'ispell-complete-word) (global-set-key [(f2)] nil) (global-set-key [(f2)] 'save-buffer) (global-set-key [(f1)] 'find-file) (global-set-key [(\\C-w)] 'kill-region) (global-set-key [(control v)] nil) (global-set-key [(control v)] 'kill-ring-save) (global-set-key [(control z)] nil) (global-set-key [(control z)] 'yank) (global-set-key [(f5)] 'query-replace) (global-set-key [(f7)] 'flyspell-buffer) (global-set-key [(f8)] 'flyspell-region) (global-set-key [(control h)] nil) (global-set-key [(control h)] 'backward-char) (global-set-key [(control t)] 'forward-char) (global-set-key [(control g)] 'previous-line) ;;(global-set-key [(control m)] 'next-line) (global-set-key [()] 'next-line) (global-set-key [(control f)] 'backward-paragraph) (global-set-key [(control b)] 'forward-paragraph) (global-set-key [(control shift f)] 'beginning-of-buffer) (global-set-key [(control shift b)] 'end-of-buffer) (global-set-key [(control u)] 'undo) (global-set-key [(control shift u)]'redo) (global-set-key [(control j)] 'universal-argument)