The “German E1 keyboard layout” is an extension to the German basic layout containing a complete set of letters for all European languages. This layout is of special interest for translators and programmers. This short note explains how to install the German E1 keyboard from source.

German E1 keyboard layout (source Wikipedia)

With the new layout you can even type Greek and the International Phonetic Alphabet. Although, by the time of this writing, the latter is not implemented yet, most features are and the driver is ready for production use. For Linux, keyboard definitions are available since September 2020, but for big distributions like Debian, it takes a while to get this available.

Instructions

The following is tested with Debian 10 Buster, but should work with Ubuntu as well (not tested).

  1. Download the E1 layout definition file from xkbdesc / xkeyboard-config · GitLab:

    cd /usr/share/X11/xkb/symbols/
    sudo mv de de.bak
    sudo bash -c "curl https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/raw/master/symbols/de > de"
    
  2. Edit /etc/default/keyboard:

    sudo nano /etc/default/keyboard
    

    Change the below variables to:

    XKBLAYOUT="de"
    XKBVARIANT="e1"
    XKBOPTIONS="lv3:caps_switch, lv5:lwin_switch_lock"
    

    Hereby,

    • turns lv3:caps_switch the [CapsLock] key into a second [AltGr] as requested in the specification (very useful because you need this a lot)
    • and lv5:_switch maps the left Windows-key to the red level (see the layout diagram above)."

    Optional: Toggle between two keyboard layouts by pressing both [Cntrl]+[Cntrl] keys together:

    XKBLAYOUT="ch,de"
    XKBVARIANT="fr,e1"
    XKBOPTIONS="grp:ctrls_toggle, lv3:caps_switch, lv5:lwin_switch_lock"
    
  3. Activate your changes.

    sudo setupcon --force
    sudo udevadm trigger --subsystem-match=input --action=change
    
  4. Test the new keyboard configuration.

    Type something, for example:

    • [AltGr]+[G] enters the capital grapheme "Eszett" ẞ (not to be confused with the lowercase Eszett: ß).

    • [AltGr]+[5] enters ¡.

    • [AltGr]+[T], [O] results in õ (lowercase letter o with ~).

    • [LeftWin]+[5] results in (1/1000).

    • [LeftWin]+[Shift]+[<] results in .

Ressources