aboutsummaryrefslogtreecommitdiffstats

1. Introduction

I've been using colemak for quite a while now and I really like it. The fact that basically only the letters change position (aside from ; and :) really makes learning it easier than some alternatives would.

I came across Programmer Dvorak a little while ago, and found the idea of having symbols on the keyboard without needing the Shift key very enticing. It made me think real hard about maybe learning Dvorak after all, even though I'd previously chosen colemak because it didn't change the places of any symbols and such.

I decided against it, though. I've invested quite a few hours getting proficient with colemak, and I'd hate for that to have been in vain. So I decided to try and change colemak's symbol positions, or some of them anyway.

I didn't change the order of the number keys, though Shift is now required to use them, because I didn't like the idea. These numbers have been ingrained into my brain since the beginning of time, or at least ever since I first sat behind a PC. Reading the Programmer Dvorak page makes me believe that there is good reason to change their order, but I thought that any benefits gained would not outweigh the benefit of blindly knowing where they are. However, it is of course possible that this may change in the future, since I also thought something similar when I first switched to colemak, but then about symbol keys in general.

I also didn't shift the number keys one place to the right, as Programmer Dvorak does. This is because even though I'm sure that that would work very well on a standard keyboard layout, it would ruin the symmetric properties of my Truly Ergonomic Keyboard. Right now the ( and ) are both placed directly above my index fingers, and since I spend quite a bit of my free time writing various forms of Lisp code that is extra cool.

keyboard-layout.png

Figure 1: Ryuk on a Truly Ergonomic Keyboard

This image was created with the Keyboard Layout Editor. This repository contains the source code for it.

2. Installation

2.1. Linux

On Linux there's 2 ways you can install the keyboard layout. 2.1.1 for the graphical environment and 2.1.2 for the non-graphical environment.

2.1.1. X11

To install and use the X11 keyboard, copy the xkb/ryuk file to where XKB looks for these files. In my case this is /usr/share/X11/xkb/symbols. Once put in the proper place, next to, for example, us, set your XkbVariant to ryuk. For example, I have in my /etc/X11/xorg.conf.d/10-evdev.conf file the following:

# ...

Section "InputClass"
    Identifier "evdev keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "XkbLayout" "ryuk"
EndSection

# ...

Since your distribution may have Xorg configured differently, you may have to specify it in a different file or a different section, but please note that only the line starting with Option was put there by me.

2.1.2. TTY

To install the TTY keyboard layout you should gzip the kbd/ryuk.map file, which can be achieved by running make from the kbd map, and put the resulting file where the kbd utilities can find them. In my case this is /usr/share/kbd/keymaps/i386/colemak/, and I choose the colemak directory because the ryuk files are based directly off the colemak files.

Once put in the proper place you should specify that the TTY should use your keymap by putting the following in your /etc/vconsole.conf:

KEYMAP=ryuk

This should work at least on systems that use systemd. I don't know how other init systems set it.

2.2. Windows

On Windows you will need to install the Microsoft Keyboard Layout Creator 1.4 to be able to compile the keyboard layout. Once installed open the ryuk.klc file in it and go to Project -> Build DLL and Setup Package. Once this has finished it'll ask you if you want to open the directory it's built the files in (which should be %USERPROFILE%\Documents\ryuk). Go to that directory and run setup.exe. After the installation is finished you'll have to restart Windows and then you can start using the keyboard layout.