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
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
replacedCapsLock
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
Top comments (0)