1. Oliver Schneider
  2. kbd_layouts

Overview

Oliver's customized keyboard layouts

Feel free to use these in any way you want under one of the permissive (non-Copyleft) licenses approved by the OSI or CC0 terms. If unsure, simply ask.

I am providing code-signed versions of the setups in the download section.

English extended (kbdus_xx) - Windows version

The Windows keyboard layout has evolved over quite some time. The (currently) final incarnation is what I call kbdus_xx. Whereas the kbd is for "keyboard", us refers to the fact that it's based on the "English (US)" layout and xx refers to the extensive nature of the layout compared to the base version.

Now I prefer using a US-English keyboard for my typing during the daily programming and debugging chores. However, that has the downside that certain symbols are never available on any of the variants of that keyboard layout.

Fortunately Microsoft offers the so-called Microsoft keyboard layout creator (MSKLC), and has done so for quite some years now. This program allows to load an existing keyboard layout and adjust it to ones own needs. And so I did. The first time before Vista was even out.

Now this suits my needs, it may not suit yours. Still it could provide a basis for your own customizations or even just point you to the very fact that it's possible.

Note: these .klc files are text files. But they are UTF-16 (LE), so they may appear like binary files at first glance. The Notepad version that comes with Windows as well as any other decent text editor should be able to edit them.

Here's how the layout looks in the various states a keyboard can have ...

Small letters (no combination with special keys)

Small letters (no combination with special keys)

Capital letters, Shift pressed

Capital letters, Shift pressed

AltGr (Ctrl+Alt), that's the one right of the space bar, pressed

AltGr (Ctrl+Alt), that's the one right of the space bar, pressed

AltGr+Shift (Ctrl+Alt+Shift) pressed

AltGr+Shift (Ctrl+Alt+Shift) pressed

XKB version (X11) of kbdus_xx (us_ext)

This one I have tested on Kubuntu 12.04 exclusively. There are lots and lots of resources on how to do it on Kubuntu, but I ended up with different steps anyway in the end. Regardless, this article was probably the single-most useful one in the process. Mind the fact that it has a resource section at the bottom, pointing to further useful resources.

Unlike the Windows version which is a keyboard layout in its own right, the way X11 and xkb work allows us to extend existing definitions. This is much more convenient and also allows for a more readable way of expressing this. I call it us_ext.

Find it under ./X11.

Installation on Kubuntu 12.04

Since I was unable to install the layout in the way described on the linked page, here's how to install it on Kubuntu 12.04.

Files to modify:

  • /usr/share/X11/xkb/symbols/us_ext
  • /usr/share/X11/xkb/rules/evdev.lst
  • /usr/share/X11/xkb/rules/evdev.xml

First thing is to copy the us_ext file from this repository into /usr/share/X11/xkb/symbols/. E.g. via:

sudo cp ./us_ext /usr/share/X11/xkb/symbols/

Once that is taken care of, invoke your favorite editor (mine is Vim with tabs enabled) to edit two configuration files belonging to xkb, so for me it was:

sudo vim -p /usr/share/X11/xkb/rules/evdev.{lst,xml}

in the .lst file insert the following line:

us_ext English (US + DE, IS, PL, Nordic)

right under us in the ! layout section. Here's a screenshot:

The screenshot

and in the .xml file insert the following block (or a sane variation thereof):

    <layout>
      <configItem>
        <name>us_ext</name>

        <shortDescription>en</shortDescription>
        <description>English (US + DE, IS, PL, Nordic)</description>
        <languageList>
          <iso639Id>eng</iso639Id>
        </languageList>
      </configItem>
     <variantList />
    </layout>

here's how that looks in Vim:

The screenshot

Russian phonetic (kbdru_us) - Windows version

This is a kind of phonetic keyboard layout that tries to squeeze as many Cyrillic (not just Russian) characters onto a keyboard layout. Obviously for practical reasons I had to assign some characters in ways that are not exactly phonetic. But I tried to be pragmatic about it.

Here's how the layout looks in the various states a keyboard can have ...

Small letters (no combination with special keys)

Small letters (no combination with special keys)

Capital letters, Shift pressed

Capital letters, Shift pressed

AltGr (Ctrl+Alt), that's the one right of the space bar, pressed

AltGr (Ctrl+Alt), that's the one right of the space bar, pressed

AltGr+Shift (Ctrl+Alt+Shift) pressed

AltGr+Shift (Ctrl+Alt+Shift) pressed