My Kinesis Advantage Layout

October 26, 2015
Updated: April 3, 2017

“Pain is inevitable. Suffering is optional.”
―M. Kathleen Casey

Kinesis Advantage

Table of contents

Overview

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 falls 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. The default layout of the keys, however, turns me off. The Ctrl and Alt keys are too far to reach. This is important for users of software like Emacs and Zsh.

Before

When using Dvorak emulation, the following layout is how the keys are mapped:

Original Software Dvorak:

Original Software Dvorak

Yuck. Using this layout on Emacs or Zsh, is hell: to press M-x, 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

I remapped some of the keys, to fit my workflow. The new layout is as follows.

Remapped Software Dvorak:

Remapped Software Dvorak

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. 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.

The new location of Ctrl and Alt makes it easy for the fingers to reach them. I swapped the location of Up and Down with Left and Right. I wanted to be able to scroll through a webpage without having to use my right hand with the mouse wheel. Page Up and Page Down were also moved to enable equal load distribution for two hands.

One of my favorites 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 bound what used to be the Ctrl keys to KP Home and KP End so that in my ~/.Xmodmap I can map it to Mode Switch. See the notes below why I added another level of indirection.

Setup

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:

SequenceDescription
Progrm + Shift + F10Reset settings
Progrm + \Disable key tones
Progrm + -Disable key tones for Caps, Scroll, Num Lock keys and Insert
Progrm + F12Start 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.

SourceDestination
EscCaps Lock
LeftUp
RightDown
UpLeft
DownRight
-_End
=+Page Down
Page UpHome
Page DownPage Up
Left Ctrl`~
Left AltLeft backslash
Right Ctrl]}
Right Alt[{
[{ (slash)Right backslash
]} (equal)Right Alt
`~=+
Right backslash-_
Keypad, KP Insert, KeypadEsc
Keypad, KP Return, KeypadLeft Alt
Keypad, u, Keypad (KP Home)Left Control
Keypad, m, Keypad (KP End)Right Control

Then, press Progrm + F12 again, to exit remapping mode. The KP Return key was moved to 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—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 a strong feature; it lets users tailor the keyboard to their specific needs. That, along with its crazy-ass durability and the award winning ergonomics makes the Advantage a worthwhile investment. You may check the manuals or visit the homepage for more information.

The latest model, Advantage2 has more features than the one that I have. The function keys of this model are now also mechanical! So, if you have the budget, go get it!