Skip to content

Files to enable keyboard extra layer on Linux and Windows.

Notifications You must be signed in to change notification settings

krvkir/keyboard_settings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keyboard settings

./layout.png

What is it

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.

Why bother

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?)

Installation

On linux:

  1. put this line into your .xprofile or whatever:

xkbcomp -I"$HOME/.config/xkb" $HOME/.config/xkb/my $DISPLAY

On windows:

  1. install AutoHotkey
  2. put the script into autorun somehow

How to use

Press and hold CapsLock button. It activates new layer:

Simple remappings:

  • ikjl = up/down/left/right arrows
  • < = home, > = end
  • p = page up, ; = page down
  • d = backspace, f = delete
  • g = escape, h = return
  • 1 = 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)

Details

Why some keys on the overlay behave the same way as on latin layout without an overlay?

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.

Why to move comma and period from their places to N and M?

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.

How does it work?

On Linux it is implemented via xkb config files. On Windows it is an AutoHotkey script.

Why not to use level 3 symbols instead of overlays?

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.

References

Some good resources on XKB:

Interesting keyboard layouts:

About

Files to enable keyboard extra layer on Linux and Windows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published