Does there exist a modified Colemak keyboard layout designed specifically for programming?
I went cold-turkey on the Colemak keyboard layout a few days ago and I really like it for normal typing, but I have some issues for frequent programming characters like the ; (semicolon) key. A modified layout that has direct mappings for braces and parentheses would be nice.
Obviously I could remap these keys myself via trial-and-error, but I'm hoping someone has done some testing to determine an optimal layout for common language characters.
I am obsessed with efficient workflows, and the results from my experiments are very compelling and I guarantee it is very much worth the endeavour. This is also my third major edit, and I have more or less settled upon the layout I use today.
I will be try to be brief and to the point.
Your fingers rest on the highlight
Wide Angle Mod: Right hand has shifted one column. Benefits:
8 layer layout requires 3 modifiers:
include "level3(lalt_switch)" // Left Alt
include "level5(ralt_switch)" // Right Alt
level5
is very obscure and extremely useful to know about, if you wish to expand. For example, on my layout, it would allow for around 200 extra characters to be added.Layer:
1230
, constitute the most common numbers, and hence are found on the home row.-+.,#%$*/\;:=
, the most relevant mathematical operators.1234567890
layout. I find this much easier and more intuitive to use.The least common alternative characters were delegated to Level3 and Level5 modifiers. They were mapped with the following reasoning:
V
ertical pipe"M
odulus"H
ash"Generally the most common programming characters that you will type exist here:
();
and works best in this orientation.'s
bigram./*
bigram and are common vim commands.\t
\n
\r
m_
and s_
bigrams. It also is not a letter because that makes shifting it a painful exercise.Shift + [A-Z]
Accessible by either modifier.
Backspace is on the left pinky, to be intuitive with the direction you are deleting.
Delete is on D, and is intuitive with the direction you are deleting.
Escape for some reason, feels best on the Ring Finger, rather than the pinky.
End and Home are inspired by a colemak Vim configuration:
S
ert, which will go to the beginning of the line before editting.T
, which goes the opposite direction.Backspace is used 10× more ( Meaning that I will use the Home Row position 10× more, rather than its default position. ).
Delete is used about 20× more.
Escape is used about 15× more.
Home and End is used about 200× more often and utilized far more often, being especially useful in editting documents outside a vim environment.
If you are up for the challenge, there are some useful ideas I have played around with, however was not able to formally add to the layout simply due to the difficulty of doing so.
In short, you could theoretically map characters or functions to the modifier keys, that only execute upon a key release. For example,
And that's that.
sudo vim /usr/share/X11/xkb/symbols/us
.vimrc
: https://paste.ubuntu.com/p/JSKMwrPMPY/~/.config/sc-im/scimrc
: https://paste.ubuntu.com/p/Vx64STMtHC/.config/qutebrowser/config.py
: https://paste.ubuntu.com/p/mcymX92tBF/