My Kinesis Advantage Layout

Esperanto | English
Last updated: March 17, 2022

Pain is inevitable. Suffering is optional.
—M. Kathleen Casey

Kinesis Advantage

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:

Original Software Dvorak

Figure 1-1: Original software Dvorak

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.

Remapped Software Dvorak

Figure 1-2: Remapped software Dvorak

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:

SequenceDescription
Progrm + Shift + F10Reset settings
Progrm + -Disable key tones for Caps Lock, Scroll Lock, Num Lock keys and Insert
Progrm + \Disable key tones
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
-_End
=+Page Down
Page UpHome
Page DownPage Up
Left Ctrl`~
Left AltLeft \
Right Ctrl]}
Right Alt[{
[{ (slash)Right \
]} (equal)Right Alt
`~=+
Right \-_
Keypad, KP Insert, KeypadEsc
Keypad, KP Return, KeypadLeft 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.