My Kinesis Advantage Layout
Pain is inevitable. Suffering is optional.
—M. Kathleen Casey
Table of contents
Introduction
One of the best investments a programmer can have is a good keyboard. What constitutes a good keyboard, however, can sometimes be a subject of debates. A common item that persists most lists is that it has be ergonomic. I add to that list an important quality: speed. No matter how ergonomic a keyboard is, if it fails on the speed category. It has to be comfortable, and speedy.
The Kinesis Advantage is the epitome of such a criteria. It is ergonomic, and it is fast. If you are already proficient typist, you’ll find that after the small adjustment period, you’ll type even faster with the Advantage.
However, the default layout of the keys, however, doesn’t suit me. The Ctrl and Alt keys are too far to reach. This is important for users of software like Emacs and Zsh.
Before
There exists a Dvorak mode which is already built-in in the keyboard. You can activate the dvorak mode without using any software by pressing Pogrm + Shift + F5. You can go back to the QWERTY mode by pressing the same key combination. When using Dvorak emulation, the following layout is how the keys are mapped:
No. Using this layout on Emacs or Zsh, is hell: to press M-x in Emacs, one would have to press the Alt key with the right thumb, then the x key with the left index finger. Reaching out for the Esc keys isn’t a lot of fun, either, because it’s too far.
After
Because of that, I remapped some of the keys. The new layout is as follows.
The new location of Ctrl and Alt makes it easy for the fingers. I swapped the location of ↑ and ↓ with ← and →. I want to be able to scroll through a webpage without having to use my right hand with the mouse wheel or the drawing tablet. Page Up and Page Down were also moved to enable equal load distribution for two hands.
One of my favorite changes is the new location of the [ and ] keys. I also like the new location of the Esc key—this allows me to easily hit the Esc key when using vi, or closing application prompts.
I used Insert in lieu of Esc, so that I can easily access the XA_PRIMARY
selection using Shift + Insert. The XA_PRIMARY
selection is where your mouse highlights go. It also makes it easy to enter Emacs’s overwrite-mode
and to add a new layer in Krita. The Insert key, however, is buried in the key physically marked with |
, on the left side. The sequence to access it is listed at end of this post.
I bound what used to be the Ctrl keys to KP Home and KP End so that in my .Xmodmap file , I can map it to Modeߺswitch. See the notes below why I added another level of indirection.
Setup
The following section contains the setup that I used to map the keys. The +
indicates pressing and holding a key, while pressing another. The ,
indicates a sequence of keys pressed and released, in order.
First, press the following keys, in order:
Sequence | Description |
---|---|
Progrm + Shift + F10 | Reset settings |
Progrm + - | Disable key tones for Caps Lock, Scroll Lock, Num Lock keys and Insert |
Progrm + \ | Disable key tones |
Progrm + F12 | Start remapping mode |
At this point, the keyboard waits for key pair combinations. The first key that you’ll press will be the source; the next key will be the destination.
Source | Destination |
---|---|
Esc | Caps Lock |
← | ↑ |
→ | ↓ |
↑ | ← |
↓ | → |
-_ | End |
=+ | Page Down |
Page Up | Home |
Page Down | Page Up |
Left Ctrl | `~ |
Left Alt | Left \ |
Right Ctrl | ]} |
Right Alt | [{ |
[{ (slash) | Right \ |
]} (equal) | Right Alt |
`~ | =+ |
Right \ | -_ |
Keypad, KP Insert, Keypad | Esc |
Keypad, KP Return, Keypad | Left Alt |
Keypad, u, Keypad (KP Home) | Left Ctrl |
Keypad, m, Keypad (KP End) | Right Ctrl |
Then, press Progrm + F12 again, to exit remapping mode. The KP Return key was moved to the left Alt so that I can easily use it as a Compose (Multi) key in X. My ~/.Xmodmap contains the following:
keycode 104 = Multi_key
Notes
If the right Ctrl key has keycode 21—while mapped via xmodmap to Modeߺswitch—and it is simultaneously pressed with c in software QWERTY, or j in software Dvorak, it generates the following text for QWERTY and Dvorak, respectively:
Copyright (c) 1998-2003 P.I. Engineering, Inc.
Jrlfpcidy (j) 1998[2003 LvCv >bicb..pcbiw Cbjv
At the time of writing, I still don’t know what causes this, nor do I think it makes sense.
Closing remarks
The programmability of the Kinesis Advantage is one of its strongest feature. That, along with its crazy-ass durability and the award-winning ergonomics makes the Advantage a worthwhile investment.
The latest models—Advantage2 and Advantage360—have more features than the one that I have. The function keys of these models are now also mechanical. So, if you have the budget, go get them! Visit the homepage of Kinesis for more information.