A few months ago I switched from Windows to Ubuntu. On Windows I used the mouse for many tasks but on Ubuntu this has changed dramatically.
It all started with a friend telling me about the tiling window manager i3. It took a few days to get used to it and configuring the key bindings was a little annoying but now I’m more than happy with it. Especially the navigation using the jklö (german keyboard layout) or jkl; (american keyboard layout) keys is comfortable. You don’t have to leave the home row for switching or moving windows with the arrow keys. In one of my next posts I’ll introduce i3 in more detail.
Emacs vs Vim
The next step was finding an appropriate text editor. After some research my final two candidates were Emacs and Vim. The main reason for choosing Vim was the similar navigation to i3. The standard keybindings for navigating in Vim are hjkl and this article explains the historical reasons. Fortunately it is very easy to change the key bindings by modifying the .vimrc file. But this leads to the following question:
Why are people still using hjkl for navigation?
I guess there are only a few users out there typing on a ADM-3A terminal so this can’t be the reason. In combination with touch typing the hjkl navigation is obviously less useful than jklö (or jkl;). So why is it still out there? Probably because everybody’s got used to it? I really don’t get it.
The problem is that hjkl is pretty much everywhere. For example Evince, the standard PDF viewer on Ubuntu, has the hjkl navigation and I couldn’t find a way to change it to jklö. System admins would also run into trouble since there is no way to adjust the key bindings in every working environment they are using. Luckily this is no issue for me at the moment.
Once you are using the jklö navigation a lot in i3 and Vim you want to use it everywhere. Luckily there are many programs and plugins that support a Vim-like navigation. Examples are the Vimium extension for Chrome/Chromium, Vrapper for Eclipse, and the PDF viewer Zathura. Most of them can be configured easily by editing a config file. At the moment I’m focusing on my bachelor thesis but I’ll share my config files in a github repository when I’m happy with them.
Do you know any reasons for using the hjkl keys for navigation besides the historical one?
Navigation of the i3 window manager: Michael Stapelberg