Kinesis Advantage for elixir and ruby developers
Tags: keyboard, productivity, emacs, vim
Published: 2021-01-18 22:03:41

---
title: Kinesis Advantage for elixir and ruby developers
published: true
description: Mapping of the the kinesis keyboard for efficient elixir development
tags: keyboard, productivity, emacs, vim
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/kt29wckwgja9d2gpe2ao.png
---

# Keyboard remapping for elixir and ruby development on doom emacs or vim

I got the `kinesis advantage 2` keyboard some time ago I have to say is money well spent. My wrist pain is now minimal. As I spend my days doing `go` and `elixir` I have fine tuned my keyboard to increase my productivity. Here I will share the layout I use while developing in elixir using `doom emacs`. But all the information here might as well apply to `ruby` and `vim`.

For this I have create a layer named `e_querty.txt` that way all I have to do is `Progm+e` to switch to _elixir_ mode. The layer looks as follows:


## thumb keys layout

I use a Mac so Im using the mac naming for the keys but you get the idea.

So I replicated `Ctrl`, `Option`, `Command` and `Shift` on both sides of the keyboard because as a *doom emacs* user with evil mode (vim style navigation) I need to have access to all letters and symbols while pressing Ctrl, Shift etc. and having them in only one side made some combos really hard to execute.
So at the end the thumbkeys look as the on the following picture

![kinesis 2 mappings](https://dev-to-uploads.s3.amazonaws.com/i/kt29wckwgja9d2gpe2ao.png)

## Key remapping

### Numbers
So as I rarely use numbers in my normal workflow I decided to _invert_ the numbers into the symbols (Shift+<number>) to speed up navigation in emacs/vim. When I need a number I can use `Shift+<symbol>` to get the number.

### Other keys
- Since elixir is snake case I inverted `-` so now by default I get `_`
- `|` is way more used than `\` so also inverted those.
- `:` is more used than `;` so inverted as well
- `"` more used than `'`... inverted
- `Esc` replaced `CapsLock` for easy escaping

### Layout file
Here is my `e_qwerty.txt` just drop it in you keyboards `active` directory and you will get the mapping 

```
[scroll]>[shutdn]
{1}>{speed5}{-rshift}{1}{+rshift}
{rshift}{1}>{speed5}{1}
{lshift}{1}>{speed5}{1}
{2}>{speed5}{-rshift}{2}{+rshift}
{rshift}{2}>{speed5}{2}
{lshift}{2}>{speed5}{2}
{3}>{speed5}{-rshift}{3}{+rshift}
{rshift}{3}>{speed5}{3}
{lshift}{3}>{speed5}{3}
{4}>{speed5}{-rshift}{4}{+rshift}
{rshift}{4}>{speed5}{4}
{lshift}{4}>{speed5}{4}
{5}>{speed5}{-rshift}{5}{+rshift}
{rshift}{5}>{speed5}{5}
{lshift}{5}>{speed5}{5}
{6}>{speed5}{-lshift}{6}{+lshift}
{rshift}{6}>{speed5}{6}
{lshift}{6}>{speed5}{6}
{7}>{speed5}{-lshift}{7}{+lshift}
{rshift}{7}>{speed5}{7}
{lshift}{7}>{speed5}{7}
{8}>{speed5}{-lshift}{8}{+lshift}
{rshift}{8}>{speed5}{8}
{lshift}{8}>{speed5}{8}
{9}>{speed5}{-lshift}{9}{+lshift}
{rshift}{9}>{speed5}{9}
{lshift}{9}>{speed5}{9}
{0}>{speed5}{-lshift}{0}{+lshift}
{rshift}{0}>{speed5}{0}
{lshift}{0}>{speed5}{0}
{hyphen}>{speed5}{-lshift}{hyphen}{+lshift}
{lshift}{hyphen}>{speed5}{hyphen}
{rshift}{hyphen}>{speed5}{hyphen}
{\}>{speed5}{-lshift}{\}{+lshift}
{lshift}{\}>{speed5}{\}
{rshift}{\}>{speed5}{\}
[caps]>[escape]
[lctrl]>[lwin]
[rwin]>[lalt]
[rctrl]>[rwin]
{;}>{speed5}{-lshift}{;}{+lshift}
{rshift}{;}>{speed5}{;}
{lshift}{;}>{speed5}{;}
{'}>{speed5}{-lshift}{'}{+lshift}
{lshift}{'}>{speed5}{'}
{rshift}{'}>{speed5}{'}
[home]>[rctrl]
[pup]>[rctrl]
[end]>[lshift]
[pdown]>[rshift]
[kp-lctrl]>[lwin]
[kp-rwin]>[rctrl]
[kp-rctrl]>[rwin]
```

## closing remarks

- why 4 shifts? no idea I have no use for those "external" shifts so I keep them there

- Got some tips for the kinesis advantage, emacs/vim or elixir/ruby productivity? just comment