π

Optimize Your (Multi-Language) Keyboard Setup, vim, dotfiles, and More

Show Sidebar

At the Gulaschprogrammiernacht 18 Miroslav Šedivý did an inspiring talk about keyboard and shortcut setup optimization for multiple-language settings:

What I've Learned

The first five minutes of the talk are truly amazing, even when you don't have any clue about keyboard layouts, vim, and IT in general.

The compose key is a powerful tool to type characters like ⅘, ¢, °, and so forth. With Linux, it is easy to set-up. My xfce offers a drop-down for an optional compose key in the keyboard settings dialog. For Windows, there seem to be solutions like this one.

Mapping right control key to compose seems a reasonable choice from my perspective, since I never use the right control key and it offers a good choice for a not so frequently used compose key.

For many people, it is clever to configure your operating system so that pressing the left control key once without any other key, it is interpreted as an ESC key. To me, this would not bring that many advantages I guess.

I found it very interesting when Miro explained the origins of hjkl as arrow keys on the keyboard. I did not know the connection to the ASCII table up to character 32 and early computing terminals.

Neovim looks like a cool replacement for my beloved vim. I especially liked the way Miro is able to expand its functionality using Python scripts when working with mutt as I do like here or here.

His method to add dotfiles in his $HOME to a Git repository is really clever:

alias config='/usr/bin/git --git-dir=$HOME/.dotfile/ --work-tree=$HOME'
git init --bare $HOME/.dotfiles
config config --local status.showUntrackedFiles no

# optional: git remote add ...

config add .config/nvim/init.vlm

# commit, branch, ...	  

My Personal Setup

So far, I am using US international keyboard layout with dead keys. The only customization I do is to map the CAPS LOCK key (I never use) to an additional control key (which I use all the time). Remapping the CAPS LOCK key is easy.

With this, I am able to type the most important special characters without any further modification and in a mnemonic way: "o → ö, AltGr and 5, `eè.

Within Emacs, I am using char-menu to insert various frequently used Unicode characters. For the rest, I am using M-x insert-char which lets me search for any kind of Unicode character there is.

I have to admit that having the advanced input method in all applications would be worth a setup investment. However, I seldom type text outside of my Emacs which significantly reduces the need for any change at the moment.

I might look into neovim some day, although my current vim setup satisfies me resulting in no need for change here as well.

For my dotfiles, I developed a git-less concept with symbolic links and shared config files using unison and/or syncthing across all of my hosts. Therefore, my other hosts are my backups which allows me for reverting changes I don't like. I most probably would not use git branching and so forth for it. With the exception of Emacs, my dotfiles are quite static.

Comment via email (persistent) or via Disqus (ephemeral) comments below: