DEV Community

loading...
Cover image for Kinesis Advantage for elixir and ruby developers

Kinesis Advantage for elixir and ruby developers

Mario Mazo
Some random dude
・3 min read

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

Key remapping

Numbers

So as I rarely use numbers in my normal workflow I decided to invert the numbers into the symbols (Shift+) 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]
Enter fullscreen mode Exit fullscreen mode

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

Discussion (0)