Kinesis Ergo xmodmap replacement in 2026 (Wayland)

revision 4bf268fa895df16fdd1609e6b7841e5071ee5737

raw

README.rst

Goal

Custom english keyboard layout for the Kinesis Advantage2 that allows easy input of German Umlauts (äöüÄÖÜß) by pressing "right alt + a/o/u/s" or "right alt + shift + a/o/u/s".

Layout can be selected in the Gnome shell 48.7 keyboard settings.

Setup

mkdir -p ~/.config/xkb/rules ~/.config/xkb/symbols

Store the files in those directories:

  • ~/.config/xkb/rules/evdev
  • ~/.config/xkb/rules/evdev.xml
  • ~/.config/xkb/symbols/cweiske
raw

home-.config-xkb-rules-evdev

1
2
3
4
5
6
// Mandatory to extend the
! include %S/evdev
 
! option     = symbols
  cweiske:kinesis = +cweiske(kinesis)
 
raw

home-.config-xkb-rules-evdev.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
<xkbConfigRegistry version="1.1">
  <layoutList>
    <layout>
      <configItem>
        <name>cweiske</name>
        <shortDescription>en</shortDescription>
        <description>cweiske + English intl., with AltGr dead keys</description>
        <countryList>
          <iso3166Id>US</iso3166Id>
          <iso3166Id>DE</iso3166Id>
        </countryList>
        <languageList>
          <iso639Id>eng</iso639Id>
          <iso639Id>deu</iso639Id>
        </languageList>
      </configItem>
    </layout>
  </layoutList>
</xkbConfigRegistry>
 
raw

home-.config-xkb-symbols-cweiske

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
partial alphanumeric_keys
xkb_symbols "kinesis" {
    include "pc+us(altgr-intl)+inet(evdev)"
    name[Group1] = "cweiske (English intl., with AltGr dead keys)";
 
    key <AC01> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               a,               A,          adiaeresis,  Adiaeresis ]
    };
    key <AD03> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               e,               E,          EuroSign,    EuroSign ]
    };
    key <AD07> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               u,               U,          udiaeresis,  Udiaeresis ]
    };
    key <AD09> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               o,               O,          odiaeresis,  Odiaeresis ]
    };
};
 

History