User Tools

Site Tools


Czech Keyboard Map with Support for German and Polish

Recently, I started having a few problems with the Czech keyboard layout because it did not satisfy my linguistic needs. I live in Germany and I started learning Polish. Many times I'm combining languages and frequent switching of keyboards is definitely a pain in the neck. I thus decided to slightly modify the Czech keyboard map and add the Polish characters to it.

I tried to keep all the goodies. I moved the EuroSign (€) to the R key and the Croatian letters đ and Đ now follow the Polish way of typing (without and with Shift, instead of Alt-S and Alt-D). Another good thing is that it is even possible to write the Hungarian “kettős éles ékezet” (double-accute accents) right, e.g. Röjtökmuzsaji rendőrség, however using a little bit complicated key-combination Alt+Shift+; followed by O (for Ő). Also, in some versions of the Czech symbol definitions (in the qwerty section), some moron replaced the German sharp S (ß) with single quotation mark ('). This has been already fixed but it hasn't reach Debian/testing by now. Simple deletion of the offending line fixed the issue because it is OK in the basic definition.

This can be useful for a Linux user who wants to type Central-European languages and mostly uses Czech. Well, maybe I'm alone in the whole Universe. Let me know, if not. :)


Add following section to /usr/share/X11/xkb/symbols/cz:

partial alphanumeric_keys
xkb_symbols "qwerty_pl" {

    // This layout was created in 2013 by Petr Cizmar <>

    include "cz(basic)"
    name[Group1]= "Czech (qwerty, with support for Polish)";

    key <AC01>  { [         a,          A,      aogonek,      Aogonek ] };
    key <AC02>  { [         s,          S,       sacute,       Sacute ] };
    key <AC03>  { [         d,          D,      dstroke,      Dstroke ] };
    key <AC09>	{ [         l,          L,      lstroke,      Lstroke ]	};
    key <AB01>  { [         z,          Z,    zabovedot,    Zabovedot ] };
    key <AB02>  { [         x,          X,       zacute,       Zacute ] };
    key <AB03>  { [         c,          C,       cacute,       Cacute ] };
    key <AB06>  { [         n,          N,       nacute,       Nacute ] };
    key <AD03>  { [         e,          E,      eogonek,      Eogonek ] };
    key <AD04>  { [         r,          R,     EuroSign,     NoSymbol ] };
    key <AD06>  { [         y,          Y,       degree,     NoSymbol ] };
    key <AD09>  { [         o,          O,       oacute,       Oacute ] };

To the X config file /etc/X11/xorg.conf modify the Keyboard section to look like this:

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbLayout" "us,cz"
    Option         "XkbVariant" ",qwerty_pl"
    Option         "XKbOptions" "grp:alt_shift_toggle"


For immediate start, use setxbkmap.

setxkbmap us,cz ,qwerty_pl -option grp:alt_shift_toggle

Switching between English and the modified Czech keyboard maps is done with left Alt+Shift.

Update: For Caps-Lock switching type:

setxkbmap us,cz ,qwerty_pl -option grp:caps_toggle


linux/cz_pl_de_keymap.txt · Last modified: 2017/05/16 11:10 (external edit)