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.
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.
The following is tested with Debian 10 Buster, but should work with Ubuntu as well (not tested).
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"
sudo nano /etc/default/keyboard
Change the below variables to:
XKBLAYOUT="de" XKBVARIANT="e1" XKBOPTIONS="lv3:caps_switch, lv5:lwin_switch_lock"
lv3:caps_switchthe [CapsLock] key into a second [AltGr] as requested in the specification (very useful because you need this a lot)
lv5:_switchmaps 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"
Activate your changes.
sudo setupcon --force sudo udevadm trigger --subsystem-match=input --action=change
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]+[T], [O] results in
[LeftWin]+ results in
[LeftWin]+[Shift]+[<] results in