Custom keyboard layouts on Linux and the jokeft version

I’ve heard abot the Dvorak[wikipedia] keyboard layout a long time ago and even gave it a very short try once. Made to minimize finger movement, it is a complete change from the usual QWERTY arrangement of letters on a typing machine that later became the standard on most computers. Learning to type on a mechanical typing machine was a one week affair for me when I was 20 years old. Continual use of the standard keyboard led to a comfortable 60 words per minutes (wpm) typing on a computer with the QWERTY, and later with the French AZERTY variant.

Recently, I have seen that several variants of Dvorak-like or QWERTY-like keyboard layouts were proposed and did a little modification on my own to see how it works (largely based on information that can be found on the wonderful carpalx website [mkweb.bcgsc.ca]). It’s been a few months that I’m typing on a JOKEFT variation of AZERTY:

Jokeft keyboard layout
Jokeft keyboard layout

So far, it’s been an interesting experience. The error rate increased but muscle stress and fatigue diminished. It is not such a big departure from the normal keyboard layout and I can switch between the two quite easily. If you want to do your own keyboard layout on Linux, the easiest method I found involves the use of XKeyCaps [jwz.org] and xmodmap.

XKeyCaps is not actively developed anymore and gave me a segmentation fault. However, it allows the modification of the keyboard layout with a nice graphical interface. If the program quits, the modifications are still there and you can see what it did with the command:

xmodmap -pke

The output of the command can be  then simplified by deleting the lines that have no changes from the standard layout and saved as a text file, for example:

keycode  24 = q Q q Q Acircumflex Adiaeresis acircumflex Acircumflex
keycode  26 = k K k K Icircumflex Idiaeresis Icircumflex Idiaeresis k K Icircumflex Idiaeresis
keycode  28 = f F f F plusminus ordfeminine plusminus ordfeminine f F plusminus ordfeminine
keycode  32 = j J j J Ucircumflex Udiaeresis Ucircumflex Udiaeresis j J Ucircumflex Udiaeresis
keycode  38 = a A a A acircumflex adiaeresis acircumflex Acircumflex
keycode  41 = t T t T thorn THORN thorn THORN t T thorn THORN
keycode  44 = o O o O ocircumflex odiaeresis ocircumflex odiaeresis o O ocircumflex odiaeresis
keycode  45 = e E e E EuroSign cent EuroSign cent e E EuroSign cent

Every time you want to have your custom layout available, the command xmodmap yourmods.txt will change it temporarily. It goes back to normal on reboot.

EDIT: you can also switch back to a “normal” layout using: setxkbmap -layout fr (replace “fr” with “us” or your keyboard layout variant).

To test yourself and train your fingers a few sites are great: keyHero [keyhero.com] or typeRacer [typeracer.com].

By the way, on Android I’m using MessagEase [exideas.com]- it’s a fantastic keyboard with big keys that allow 20-25 wpm speeds quite easily. Needs a little practice but it is very convenient for one hand or two hands use.

EDIT 2: F to T changes were too annoying for every day use. I’m now using just the changes between o/j k/e and a/q (on my French keyboard) , to have “o”, “e” and “a” on the home row. A little bit of assymetry, because the right hand gets a lot of use this way. Even in this simplified version, moving around in VIM or VI is troublesome (because of the “j”). The solution:

nnoremap e k
nnoremap o j
nnoremap a q
nnoremap k e
nnoremap j o
nnoremap q a

Adding these lines to the .vimrc file helps re-remap the keys to their standard location, only in the “Normal” mode (for full explanations, see the wiki page). I have yet to see if other modifications are needed…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s