Space Cadet

Tags: lisp, tech, Date: 2008-12-15

Emacs users often report problems caused by strain on the pinky finger, which is used to press the Control key. The standard answer to that is to map Caps Lock to Control. I believe that there is a better way:

Note the placement of modifiers: Control, Meta, Super, Hyper on both sides of Space in this order, with Control being the closest to it. Touch typers especially find having two of each key absolutely essential, and the symmetric placement appeals to me.

Also note the Rubout key next to A where Caps Lock resides on modern keyboards. Rubout is like Backspace and is better to have on the home row than the most useless and annoying key in history.

Under X11, the above are the modifications I make to the default layout. I keep the original Backspace key too as Backspace, but it could be Caps Lock as well: I don't use it either way. If you have a narrow Space key, you can place your thumbs on the two Control keys while the fingers rest on 'asdf' and 'jkl;'. Always press modifiers with the alternate hand. C-a is right thumb + left pinky, C-M-p is left-thumb + left-ring + right-pinky. For C-M-P, add the left pinky for Shift.

Another thing I find tremendously useful is getting used to C-n, C-p, C-b, C-f instead of reaching for the arrow keys as often as a vi user for Escape.

Well, that's the narration. To implement the above, I guess, one can create an xkb description, but last time I tried, documentation was extremely unhelpful, so I ended up hacking together an xmodmap file. I'm told this file is not really portable, so it's provided here only for illustration, and it's easy enough to do the same yourself for your keyboard. To switch to the new layout do:

xmodmap lisp-machine-pc105-us.xmodmap
xset r 66

where the second command enables auto repeat on the fresh, new Backspace key. It works on a pc105 (with one Win key) notebook keyboard.

Oh, that xmodmap file above also has [] and () swapped.

2020-05-03 Later on, I broke down and wrote an xkb version.