Keyboard settings bringing hardly-reachable keys to your home row (or as close to it as possible):
- arrows, page up/down, home/end
- delete, backspace
- f-keys
- even jump-to-next/previous-word and delete-next/previous-word
Works on Linux and Windows.
To forget about moving hands away from the home row every time you need to do something besides character input (which is quite often: move to the next line, fix a typo, even go out of insert mode in your favourite editor).
Of cause, one can (and should) use a good editor which takes these problems off. But hey, isn’t it cool to have a minimal set of features of this good editor in EVERY app? In every web browser, email client, table and text processors, messengers and password keepers, file managers and music players. In every place on your screen which is supposed to input something in.
My own killing examples are Jupyter Notebook web app and Freeplane mindmap utility. I love these apps but they do not and probably never will provide as good keyboard-only user experience as in vim or spacemacs.
Another benefit is that you will never suffer because of a non-standard keyboard in your new laptop.
And you can have all these goodies both on Linux and Windows.
Of cause there are disadvantages:
- you will need to get familiar with new settings
- you will suffer each time you work on someone else’s computer for long (but after all, why should you do that?)
On linux:
- put this line into your .xprofile or whatever:
xkbcomp -I"$HOME/.config/xkb" $HOME/.config/xkb/my $DISPLAY
On windows:
- install AutoHotkey
- put the script into autorun somehow
Press and hold CapsLock button. It activates new layer:
Simple remappings:
ikjl
= up/down/left/right arrows<
= home,>
= endp
= page up,;
= page downd
= backspace,f
= deleteg
= escape,h
= return1
= F1 …0
= F10- many useful symbols missing on Cyrillic layout
- some usable typographical and mathematical symbols: “dash”, “plus-minus”, “approximately equal”, “not equal”.
Combos:
u
= ctrl-left (usually jump to the beginning of the word),o
= ctrl-right (usually jumps to the end of the word)e
= ctrl-backspace (usually deletes from the cursor to the beginning of the word),r
= ctrl-delete (usually deletes from the cursor to the end of the word)
Because, when you’re not on latin layout, you need to switch layout to latin one and back to enter, say, quotation sign or square bracket. It’s easier to enter those symbols holding the overlay activator and pressing a button you used to press in latin layout.
Because I found it inconvenient to have Home and End at N and M. In this case one have to move his index finger from J key and lose his grasp at the home row.
On Linux it is implemented via xkb config files. On Windows it is an AutoHotkey script.
Because overlays work in java swing apps like Freeplane and level 3 symbols doesn’t.
Actually, level 3 actions work in Freeplane’s main interface but don’t work in node editors. Neither in inline one nor in dialog one. And it is critical to have them work there.
Some good resources on XKB:
- https://www.x.org/archive/X11R7.5/doc/input/XKB-Enhancing.html
- https://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html
Interesting keyboard layouts:
- Ilya Birman’s typography layout — for designers and text writers who care about quotes, dashes, and so on.