[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#779066: console-setup: /etc/default/keyboard changes do not affect console or X



Package: console-setup
Version: 1.116
Severity: important

Hello,

Have been making some changes to ease the way Portuguese (pt-br) users use the
US standard keyboards.

Have com up with a usable variant (nicknamed us(brz)) and am trying to test it
for usability.

changed the /usr/share/X11/xkb/symbols/us file (att.)
changed the /usr/share/X11/xkb/rules/[xorg|Xfree86].lst and .xml files (att.)

made the changes to /etc/default/keyboard (att.)
and after 'setupcon -v' have the following:

Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading 256-char 8x16 font from file /etc/console-
setup/cached_Lat15-Fixed16.ps$
Loading Unicode mapping table...
Loading /etc/console-setup/cached_UTF-8_del.kmap.gz

Nothing changes with 'reboot' or 'console-setup' (since I cannot find the brz
variant, Anton told me that this is expected since variants are hardcoded into
debconf for installation purposes.

Neither console nor X change.

I managed to make the X change after a:
'setxkbmap -rules evdev -model evdev -layout us -variant brz -option
grp:alts_toggle'

And I get a fully functional brz variant KB, but the next X section I have to
run the command again.

My main issue is the lack of configurability of Debian console even with the
changes in /etc/default/keyboard.

Thanks




-- System Information:
Debian Release: 8.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages console-setup depends on:
ii  console-setup-linux     1.116
ii  debconf                 1.5.55
ii  keyboard-configuration  1.116
ii  xkb-data                2.12-1

console-setup recommends no packages.

Versions of packages console-setup suggests:
ii  locales   2.19-13
ii  lsb-base  4.1+Debian13+nmu1

Versions of packages keyboard-configuration depends on:
ii  debconf                 1.5.55
ii  initscripts             2.88dsf-58
ii  liblocale-gettext-perl  1.05-8+b1

Versions of packages console-setup-linux depends on:
ii  kbd                     1.15.5-2
ii  keyboard-configuration  1.116

console-setup-linux suggests no packages.

Versions of packages console-setup is related to:
ii  console-common  0.7.88
ii  console-data    2:1.12-5
pn  console-tools   <none>
ii  kbd             1.15.5-2

-- debconf information:
  keyboard-configuration/unsupported_layout: true
  console-setup/fontsize-fb47: 8x16
* keyboard-configuration/altgr: The default for the keyboard layout
* keyboard-configuration/ctrl_alt_bksp: false
* keyboard-configuration/unsupported_config_layout: false
  console-setup/framebuffer_only:
  console-setup/store_defaults_in_debconf_db: true
* keyboard-configuration/other:
  console-setup/fontsize: 8x16
  console-setup/use_system_font:
* keyboard-configuration/optionscode:
  keyboard-configuration/unsupported_config_options: true
  keyboard-configuration/unsupported_options: true
  console-setup/codeset47: # Latin1 and Latin5 - western Europe and Turkic
languages
  debian-installer/console-setup-udeb/title:
* keyboard-configuration/layoutcode: us
* keyboard-configuration/store_defaults_in_debconf_db: true
  console-setup/fontface47: Fixed
* keyboard-configuration/layout:
* keyboard-configuration/modelcode: pc105
* keyboard-configuration/variantcode: intl
* keyboard-configuration/compose: No compose key
  console-setup/guess_font:
  console-setup/charmap47: UTF-8
* keyboard-configuration/variant: English (US) - English (US, international
with dead keys)
  console-setup/fontsize-text47: 8x16
* keyboard-configuration/model: Generic 105-key (Intl) PC
* keyboard-configuration/toggle: No toggling
  console-setup/codesetcode: Lat15
default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {

    name[Group1]= "English (US)";

    key <TLDE> {	[     grave,	asciitilde	]	};
    key <AE01> {	[	  1,	exclam 		]	};
    key <AE02> {	[	  2,	at		]	};
    key <AE03> {	[	  3,	numbersign	]	};
    key <AE04> {	[	  4,	dollar		]	};
    key <AE05> {	[	  5,	percent		]	};
    key <AE06> {	[	  6,	asciicircum	]	};
    key <AE07> {	[	  7,	ampersand	]	};
    key <AE08> {	[	  8,	asterisk	]	};
    key <AE09> {	[	  9,	parenleft	]	};
    key <AE10> {	[	  0,	parenright	]	};
    key <AE11> {	[     minus,	underscore	]	};
    key <AE12> {	[     equal,	plus		]	};

    key <AD01> {	[	  q,	Q 		]	};
    key <AD02> {	[	  w,	W		]	};
    key <AD03> {	[	  e,	E		]	};
    key <AD04> {	[	  r,	R		]	};
    key <AD05> {	[	  t,	T		]	};
    key <AD06> {	[	  y,	Y		]	};
    key <AD07> {	[	  u,	U		]	};
    key <AD08> {	[	  i,	I		]	};
    key <AD09> {	[	  o,	O		]	};
    key <AD10> {	[	  p,	P		]	};
    key <AD11> {	[ bracketleft,	braceleft	]	};
    key <AD12> {	[ bracketright,	braceright	]	};

    key <AC01> {	[	  a,	A 		]	};
    key <AC02> {	[	  s,	S		]	};
    key <AC03> {	[	  d,	D		]	};
    key <AC04> {	[	  f,	F		]	};
    key <AC05> {	[	  g,	G		]	};
    key <AC06> {	[	  h,	H		]	};
    key <AC07> {	[	  j,	J		]	};
    key <AC08> {	[	  k,	K		]	};
    key <AC09> {	[	  l,	L		]	};
    key <AC10> {	[ semicolon,	colon		]	};
    key <AC11> {	[ apostrophe,	quotedbl	]	};

    key <AB01> {	[	  z,	Z 		]	};
    key <AB02> {	[	  x,	X		]	};
    key <AB03> {	[	  c,	C		]	};
    key <AB04> {	[	  v,	V		]	};
    key <AB05> {	[	  b,	B		]	};
    key <AB06> {	[	  n,	N		]	};
    key <AB07> {	[	  m,	M		]	};
    key <AB08> {	[     comma,	less		]	};
    key <AB09> {	[    period,	greater		]	};
    key <AB10> {	[     slash,	question	]	};

    key <BKSL> {	[ backslash,         bar	]	};
};

partial alphanumeric_keys
xkb_symbols "euro" {

    include "us(basic)"
    name[Group1]= "English (US, with euro on 5)";

    include "eurosign(5)"

    include "level3(ralt_switch)"
};


partial alphanumeric_keys
xkb_symbols "intl" {

    include "us(basic)"
    name[Group1]= "English (US, international with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };
    key <AE01> { [	   1,     exclam,    exclamdown,      onesuperior ] };
    key <AE02> { [	   2,         at,   twosuperior, dead_doubleacute ] };
    key <AE03> { [	   3, numbersign, threesuperior,      dead_macron ] };
    key <AE04> { [	   4,     dollar,      currency,         sterling ] };
    key <AE05> { [	   5,    percent,      EuroSign,     dead_cedilla ] };
    key <AE06> { [    6, dead_circumflex,    onequarter,      asciicircum ] };
    key <AE07> { [	   7,  ampersand,       onehalf,	dead_horn ] };
    key <AE08> { [	   8,   asterisk, threequarters,      dead_ogonek ] };
    key <AE09> { [	   9,  parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [	   0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [     minus, underscore,           yen,    dead_belowdot ] };
    key <AE12> { [     equal,       plus,      multiply,         division ] };

    key <AD01> { [	   q,          Q,    adiaeresis,       Adiaeresis ] };
    key <AD02> { [	   w,          W,         aring,            Aring ] };
    key <AD03> { [	   e,          E,        eacute,           Eacute ] };
    key <AD04> { [	   r,          R,    registered,       registered ] };
    key <AD05> { [	   t,          T,         thorn,            THORN ] };
    key <AD06> { [	   y,          Y,    udiaeresis,       Udiaeresis ] };
    key <AD07> { [	   u,          U,        uacute,           Uacute ] };
    key <AD08> { [	   i,          I,        iacute,           Iacute ] };
    key <AD09> { [	   o,          O,        oacute,           Oacute ] };
    key <AD10> { [	   p,          P,    odiaeresis,       Odiaeresis ] };
    key <AD11> { [ bracketleft,  braceleft,  guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [	   a,          A,        aacute,           Aacute ] };
    key <AC02> { [	   s,          S,        ssharp,          section ] };
    key <AC03> { [	   d,          D,           eth,              ETH ] };
    key <AC04> { [	   f,          F,             f,                F ] };
    key <AC05> { [	   g,          G,             g,                G ] };
    key <AC06> { [	   h,          H,             h,                H ] };
    key <AC07> { [	   j,          J,             j,                J ] };
    key <AC08> { [	   k,          K,            oe,               OE ] };

    key <AC09> { [	   l,          L,        oslash,         Ooblique ] };
    key <AC10> { [ semicolon,      colon,     paragraph,           degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe,        quotedbl ] };

    key <AB01> { [	   z,          Z,            ae,               AE ] };
    key <AB02> { [	   x,          X,             x,                X ] };
    key <AB03> { [	   c,          C,     copyright,             cent ] };
    key <AB04> { [	   v,          V,             v,                V ] };
    key <AB05> { [	   b,          B,             b,                B ] };
    key <AB06> { [	   n,          N,        ntilde,           Ntilde ] };
    key <AB07> { [	   m,          M,            mu,               mu ] };
    key <AB08> { [     comma,       less,      ccedilla,         Ccedilla ] };
    key <AB09> { [    period,    greater, dead_abovedot,       dead_caron ] };
    key <AB10> { [     slash,   question,  questiondown,        dead_hook ] };
    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };

    key <LSGT> { [ backslash,   bar,            backslash,      bar ] };

    include "level3(ralt_switch)"
};

// Based on symbols/us_intl keyboard map:
// Dead-keys definition for a very simple US/ASCII layout.
// by Conectiva (http://www.conectiva.com.br)
// modified by Ricardo Y. Igarashi (iga@that.com.br)

// Added the following deadkeys, to make it truly international:
//
// dead_macron: on AltGr-minus
// dead_breve: on AltGr-parenleft
// dead_abovedot: on AltGr-period
// dead_abovering: on AltGr-0
// dead_doubleacute: on AltGr-equal (as quotedbl is already used)
// dead_caron: on AltGr-less (AltGr-shift-comma)
// dead_cedilla: on AltGr-comma
// dead_ogonek: on AltGr-semicolon
// dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
// dead_hook: on AltGr-question
// dead_horn: on AltGr-plus (AltGr-shift-equal)
// dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
//
// those were already there:
// dead_grave
// dead_acute
// dead_circumflex
// dead_tilde
// dead_diaeresis

partial alphanumeric_keys
xkb_symbols "alt-intl" {

  include "us"
  name[Group1]= "English (US, alternative international)";

  key <TLDE> { [ dead_grave, dead_tilde,    grave,	      asciitilde    ] };
  key <AE05> { [          5, percent,	    EuroSign			    ] };
  key <AE06> { [	  6, dead_circumflex, asciicircum,    asciicircum   ] };
  key <AE09> { [	  9, parenleft, leftsinglequotemark,  dead_breve ] };
  key <AE10> { [	  0, parenright, rightsinglequotemark, dead_abovering ] };
  key <AE11> { [      minus, underscore,    dead_macron,      dead_belowdot ] };
  key <AE12> { [      equal, plus,	    dead_doubleacute, dead_horn	    ] };

  key <AD03> { [          e, E,		     EuroSign,         cent	    ] };

  key <AC10> { [  semicolon, colon,	     dead_ogonek,   dead_diaeresis  ] };
  key <AC11> { [ dead_acute, dead_diaeresis, apostrophe,    quotedbl	    ] };

  key <AB08> { [      comma, less,	     dead_cedilla,  dead_caron	    ] };
  key <AB09> { [     period, greater,	     dead_abovedot, dead_circumflex ] };
  key <AB10> { [      slash, question,	     dead_hook,	    dead_hook	    ] };

  key <LSGT> { [ backslash,   bar,            backslash,      bar ] };

  include "level3(ralt_switch)"
};

// This is for implementation of easier ergonomic typewritting in Portuguese with the US
// PC(105) keyboards (generally shipped in laptops now.
// 
// It is based on us(intl) so has everything you expect. Main diferences are that the 
// keystrokes are modified to make this more in tune with pt typewritting, 
// i.e. ALT+A = atilde and not aacute. With this keymap, a 2 key press will give ccedilla, 
// atile and otilde in a manner easier for the portuguese language. 
// 
// We modify the ALT+C to give us ccedilla and ALT+SHIFT+C to Ccedilla. We put 
// the copyright and cent symbols in ALT+comma and ALT+SHIFT+comma (aka "just a swap").
// We also changed what ALT+A, ALT+Q, ALT+Z, ALT+X, ALT+E, ALT+W, ALT+O, ALT+P and ALT+K do.
// 
// The tilde is so awkward in US keyboards (SHIFT+dead_acute+LETTER) we put it in the keymap
// for A and O, and the other umlants we mapped to priotritize portuguse; 
// ö and ä do not exist in pt, so we mapped the umlants we use in their place.
// 
// The acute and tilde were not touched, so Compose rules should still work. We are 
// prioritizing the use of ALT so we can get umlants in a system wide fashion.  
// 
// Rogerio Luz Coelho (luz.rogerio@gmail.com) - 2015-02-19  
// 

partial alphanumeric_keys
xkb_symbols "brz"
{
    include "us(intl)"
    name[Group1]= "English (US, intl, for pt-br)";

///////////////////////////////////////////
// C and CEDILLA                         
//////////////////////////////////////////
    key <AB03> { [           c,            C,       ccedilla,       Ccedilla ] }; // ALT+C gives cedilla (ç) now,
    key <AB08> { [       comma,       lesser,      copyright,           cent ] }; // "©" and "¢" mapped to comma.
////////////////////////////////////////// 
// A and A-UMLANTS
//////////////////////////////////////////  
    key <AC01> { [           a,            A,         atilde,         Atilde ] }; // ALT+A gives atilde (ã) now,
//                                                                                // no need to type akward SHIFT+dead_grave+A 
//
    key <AD01> { [	     q,            Q,         aacute,         Aacute ] }; // ä is not used in pt
//                                                                                // ALT+Q now gives aacute (á)
//      
    key <AB01> { [	     z,            Z,    acircumflex,    Acircumflex ] }; // ALT+Z now gives acircumflex (â)
    key <AB02> { [	     x,            X,             ae,             AE ] }; // swapped AE (æ,Æ) to X (previously not set)
//////////////////////////////////////////
// E and E-UMLANTS
//////////////////////////////////////////   
    key <AD02> { [	     w,            W,    ecircumflex,    Ecircumflex ] }; // swapped ALT+W and ALT+E, since eacute (é)       
    key <AD03> { [           e,            E,    ecircumflex,    Ecircumflex ] }; // is more used than ecircumflex (ê) in pt 
//////////////////////////////////////////
// O and O-UMLANTS
//////////////////////////////////////////
    key <AD09> { [           o,            O,         otilde,         Otilde ] }; // same idea as ALT+A above.
//
    key <AD10> { [	     p,            P,         oacute,         Oacute ] }; // ö is not used in pt
//                                                                                // ALT+P now gives oacute (ó)
//
    key <AC07> { [	     j,            J,             oe,             OE ] }; // OE (Œ) now on ALT+J (previously not set)
    key <AC08> { [	     k,            K,    ocircumflex,    Ocircumflex ] }; // ALT+K now ocircumflex (ô)
   


    include "level3(ralt_switch)"
};


// based on a keyboard map from an 'xkb/symbols/dk' file

partial alphanumeric_keys
xkb_symbols "dvorak" {

    name[Group1]= "English (Dvorak)";

    key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };

    key <AE01> { [	    1,	exclam 		]	};
    key <AE02> { [	    2,	at		]	};
    key <AE03> { [	    3,	numbersign	]	};
    key <AE04> { [	    4,	dollar		]	};
    key <AE05> { [	    5,	percent		]	};
    key <AE06> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};
    key <AE07> { [	    7,	ampersand	]	};
    key <AE08> { [	    8,	asterisk	]	};
    key <AE09> { [	    9,	parenleft,  dead_grave]	};
    key <AE10> { [	    0,	parenright	]	};
    key <AE11> { [ bracketleft,	braceleft	]	};
    key <AE12> { [ bracketright, braceright,  dead_tilde] };

    key <AD01> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };
    key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };
    key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };
    key <AD04> { [	    p,	P		]	};
    key <AD05> { [	    y,	Y		]	};
    key <AD06> { [	    f,	F		]	};
    key <AD07> { [	    g,	G		]	};
    key <AD08> { [	    c,	C		]	};
    key <AD09> { [	    r,	R		]	};
    key <AD10> { [	    l,	L		]	};
    key <AD11> { [	slash,	question	]	};
    key <AD12> { [	equal,	plus		]	};

    key <AC01> { [	    a,	A 		]	};
    key <AC02> { [	    o,	O		]	};
    key <AC03> { [	    e,	E		]	};
    key <AC04> { [	    u,	U		]	};
    key <AC05> { [	    i,	I		]	};
    key <AC06> { [	    d,	D		]	};
    key <AC07> { [	    h,	H		]	};
    key <AC08> { [	    t,	T		]	};
    key <AC09> { [	    n,	N		]	};
    key <AC10> { [	    s,	S		]	};
    key <AC11> { [	minus,	underscore	]	};

    key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [	    q,	Q		]	};
    key <AB03> { [	    j,	J		]	};
    key <AB04> { [	    k,	K		]	};
    key <AB05> { [	    x,	X		]	};
    key <AB06> { [	    b,	B		]	};
    key <AB07> { [	    m,	M		]	};
    key <AB08> { [	    w,	W		]	};
    key <AB09> { [	    v,	V		]	};
    key <AB10> { [	    z,	Z		]	};

    key <BKSL> { [  backslash,  bar             ]       };
};

// Dvorak international with dead keys
// Olivier Mehani (shtrom-xorg@ssji.net)
// Reproduce the per-key mapping of us(intl) for the dvorak layout
// aka "I just swapped my keys over"
partial alphanumeric_keys
xkb_symbols "dvorak-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, international with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };

    key <AE01> { [	   1,     exclam,    exclamdown,      onesuperior ] };
    key <AE02> { [	   2,         at,   twosuperior, dead_doubleacute ] };
    key <AE03> { [	   3, numbersign, threesuperior,      dead_macron ] };
    key <AE04> { [	   4,     dollar,      currency,         sterling ] };
    key <AE05> { [	   5,    percent,      EuroSign,     dead_cedilla ] };
    key <AE06> { [    6, dead_circumflex,    onequarter,      asciicircum ] };
    key <AE07> { [	   7,  ampersand,       onehalf,	dead_horn ] };
    key <AE08> { [	   8,   asterisk, threequarters,      dead_ogonek ] };
    key <AE09> { [	   9,  parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [	   0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft,  braceleft,  guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [dead_acute, dead_diaeresis, apostrophe,        quotedbl ] };
    key <AD02> { [     comma,       less,      ccedilla,         Ccedilla ] };
    key <AD03> { [    period,    greater, dead_abovedot,       dead_caron ] };
    key <AD04> { [	   p,          P,    odiaeresis,       Odiaeresis ] };
    key <AD05> { [	   y,          Y,    udiaeresis,       Udiaeresis ] };
    // key <AD06> { [	   f,	F		]	};
    // key <AD07> { [	   g,	G		]	};
    key <AD08> { [	   c,          C,     copyright,             cent ] };
    key <AD09> { [	   r,          R,    registered,       registered ] };
    key <AD10> { [	   l,          L,        oslash,         Ooblique ] };
    key <AD11> { [     slash,   question,  questiondown,        dead_hook ] };
    // key <AD12> { [     equal,       plus,      multiply,         division ] };

    key <AC01> { [	   a,          A,        aacute,           Aacute ] };
    key <AC02> { [	   o,          O,        oacute,           Oacute ] };
    key <AC03> { [	   e,          E,        eacute,           Eacute ] };
    key <AC04> { [	   u,          U,        uacute,           Uacute ] };
    key <AC05> { [	   i,          I,        iacute,           Iacute ] };
    key <AC06> { [	   d,          D,           eth,              ETH ] };
    // key <AC07> { [	   h,	H		]	};
    key <AC08> { [	   t,          T,         thorn,            THORN ] };
    key <AC09> { [	   n,          N,        ntilde,           Ntilde ] };
    key <AC10> { [	   s,          S,        ssharp,          section ] };
    // key <AC11> { [     minus, underscore,           yen,    dead_belowdot ] };

    key <AB01> { [ semicolon,      colon,     paragraph,           degree ] };
    key <AB02> { [	   q,          Q,    adiaeresis,       Adiaeresis ] };
    // key <AB03> { [	   j,	J		]	};
    key <AB04> { [	   k,          K,            oe,               OE ] };
    // key <AB05> { [	   x,	X		]	};
    // key <AB06> { [	   b,	B		]	};
    key <AB07> { [	   m,          M,            mu,               mu ] };
    key <AB08> { [	   w,          W,         aring,            Aring ] };
    // key <AB09> { [	   v,	V		]	};
    key <AB10> { [	   z,          Z,            ae,               AE ] };

    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };

    include "level3(ralt_switch)"
};

// Dvorak international without dead keys
// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
// Based on information from http://www.poupinou.org/dvorak/index.html
//
//  `   1   2   3   4   5   6   7   8   9   0   [   ]   \
//                  €
//
//      '   ,   .   p   y   f   g   c   r   l   /   =
//          ä   ê   ë   ü           ç
//
//      a   o   e   u   i   d   h   t   n   s   -
//      à   ô   é   û   î                   ß
//
//      ;   q   j   k   x   b   m   w   v   z
//      â   ö   è   ù   ï

partial alphanumeric_keys
xkb_symbols "dvorak-alt-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak alternative international no dead keys)";

    key <AE04> { [         4,  dollar,    EuroSign ] };

    key <AD02> { [     comma,    less,  adiaeresis,       dead_caron ] };
    key <AD03> { [    period, greater, ecircumflex,   periodcentered	] };
    key <AD04> { [         p,       P,  ediaeresis,     dead_cedilla ] };
    key <AD05> { [         y,       Y,  udiaeresis ] };
    key <AD08> { [         c,       C,    ccedilla,    dead_abovedot ] };

    key <AC01> { [         a,       A,      agrave ] };
    key <AC02> { [         o,       O, ocircumflex ] };
    key <AC03> { [         e,       E,      eacute ] };
    key <AC04> { [         u,       U, ucircumflex ] };
    key <AC05> { [         i,       I, icircumflex ] };
    key <AC10> { [         s,       S,      ssharp ] };

    key <AB01> { [ semicolon,   colon, acircumflex ] };
    key <AB02> { [         q,       Q,  odiaeresis,      dead_ogonek ] };
    key <AB03> { [         j,       J,      egrave, dead_doubleacute ] };
    key <AB04> { [         k,       K,      ugrave ] };
    key <AB05> { [         x,       X,  idiaeresis ] };

    include "level3(ralt_switch)"
};

// Left and right handed dvorak layouts
// by sqweek <sqweek@gmail.com> 2006-01-30
// Based on the corresponding layouts in the console-tools package.
partial alphanumeric_keys
xkb_symbols "dvorak-l" {

    include "us(dvorak)"
    name[Group1]= "English (left handed Dvorak)";

    key <AE01> {	[ bracketleft,	braceleft	]	};
    key <AE02> {	[ bracketright,	braceright	]	};
    key <AE03> {	[	slash,	question	]	};
    key <AE04> {	[	    p,	P		]	};
    key <AE05> {	[	    f,	F		]	};
    key <AE06> {	[	    m,	M		]	};
    key <AE07> {	[	    l,	L		]	};
    key <AE08> {	[	    j,	J		]	};
    key <AE09> {	[	    4,	dollar		]	};
    key <AE10> {	[	    3,	numbersign	]	};
    key <AE11> {	[	    2,	at		]	};
    key <AE12> {	[	    1,	exclam 		]	};

    key <AD01> {	[   semicolon,	colon 		]	};
    key <AD02> {	[	    q,	Q		]	};
    key <AD03> {	[	    b,	B		]	};
    key <AD04> {	[	    y,	Y		]	};
    key <AD05> {	[	    u,	U		]	};
    key <AD06> {	[	    r,	R		]	};
    key <AD07> {	[	    s,	S		]	};
    key <AD08> {	[	    o,	O		]	};
    key <AD09> {	[      period,	greater		]	};
    key <AD10> {	[	    6,	asciicircum	]	};
    key <AD11> {	[	    5,	percent		]	};
    key <AD12> {	[	equal,	plus		]	};

    key <AC01> {	[	minus,	underscore	]	};
    key <AC02> {	[	    k,	K		]	};
    key <AC03> {	[	    c,	C		]	};
    key <AC04> {	[	    d,	D		]	};
    key <AC05> {	[	    t,	T		]	};
    key <AC06> {	[	    h,	H		]	};
    key <AC07> {	[	    e,	E		]	};
    key <AC08> {	[	    a,	A 		]	};
    key <AC09> {	[	    z,	Z		]	};
    key <AC10> {	[	    8,	asterisk	]	};
    key <AC11> {	[	    7,	ampersand	]	};

    key <AB01> {	[  apostrophe,	quotedbl	] 	};
    key <AB02> {	[	    x,	X		]	};
    key <AB03> {	[	    g,	G		]	};
    key <AB04> {	[	    v,	V		]	};
    key <AB05> {	[	    w,	W		]	};
    key <AB06> {	[	    n,	N		]	};
    key <AB07> {	[	    i,	I		]	};
    key <AB08> {	[	comma,	less		]	};
    key <AB09> {	[	    0,	parenright	]	};
    key <AB10> {	[	    9,	parenleft	]	};
};

partial alphanumeric_keys
xkb_symbols "dvorak-r" {

    include "us(dvorak)"
    name[Group1]= "English (right handed Dvorak)";

    key <AE01> {	[	    1,	exclam 		]	};
    key <AE02> {	[	    2,	at		]	};
    key <AE03> {	[	    3,	numbersign	]	};
    key <AE04> {	[	    4,	dollar		]	};
    key <AE05> {	[	    j,	J		]	};
    key <AE06> {	[	    l,	L		]	};
    key <AE07> {	[	    m,	M		]	};
    key <AE08> {	[	    f,	F		]	};
    key <AE09> {	[	    p,	P		]	};
    key <AE10> {	[	slash,	question	]	};
    key <AE11> {	[ bracketleft,	braceleft	]	};
    key <AE12> {	[ bracketright,	braceright	]	};

    key <AD01> {	[	    5,	percent		]	};
    key <AD02> {	[	    6,	asciicircum ]	};
    key <AD03> {	[	    q,	Q		]	};
    key <AD04> {	[      period,	greater		]	};
    key <AD05> {	[	    o,	O		]	};
    key <AD06> {	[	    r,	R		]	};
    key <AD07> {	[	    s,	S		]	};
    key <AD08> {	[	    u,	U		]	};
    key <AD09> {	[	    y,	Y		]	};
    key <AD10> {	[	    b,	B		]	};
    key <AD11> {	[   semicolon,	colon 		]	};
    key <AD12> {	[	equal,	plus		]	};

    key <AC01> {	[	    7,	ampersand	]	};
    key <AC02> {	[	    8,	asterisk	]	};
    key <AC03> {	[	    z,	Z		]	};
    key <AC04> {	[	    a,	A 		]	};
    key <AC05> {	[	    e,	E		]	};
    key <AC06> {	[	    h,	H		]	};
    key <AC07> {	[	    t,	T		]	};
    key <AC08> {	[	    d,	D		]	};
    key <AC09> {	[	    c,	C		]	};
    key <AC10> {	[	    k,	K		]	};
    key <AC11> {	[	minus,	underscore	]	};

    key <AB01> {	[	    9,	parenleft	]	};
    key <AB02> {	[	    0,	parenright	]	};
    key <AB03> {	[	    x,	X		]	};
    key <AB04> {	[	comma,	less		]	};
    key <AB05> {	[	    i,	I		]	};
    key <AB06> {	[	    n,	N		]	};
    key <AB07> {	[	    w,	W		]	};
    key <AB08> {	[	    v,	V		]	};
    key <AB09> {	[	    g,	G		]	};
    key <AB10> {	[  apostrophe,	quotedbl	] 	};
};

// Classic dvorak layout
// by Piter Punk <piterpk@terra.com.br> - 2006-07-06 
// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net 
// on xorg list.
partial alphanumeric_keys
xkb_symbols "dvorak-classic" {

    name[Group1]= "English (classic Dvorak)";

    key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };

    key <AE01> { [ bracketleft,	braceleft	]	};
    key <AE02> { [	    7,	ampersand	]	};
    key <AE03> { [	    5,	percent		]	};
    key <AE04> { [	    3,	numbersign	]	};
    key <AE05> { [	    1,	exclam 		]	};
    key <AE06> { [	    9,	parenleft,  dead_grave]	};
    key <AE07> { [	    0,	parenright	]	};
    key <AE08> { [	    2,	at		]	};
    key <AE09> { [	    4,	dollar		]	};
    key <AE10> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};
    key <AE11> { [	    8,	asterisk	]	};
    key <AE12> { [ bracketright, braceright,  dead_tilde] };

    key <AD01> { [	slash,	question	]	};
    key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };
    key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };
    key <AD04> { [	    p,	P		]	};
    key <AD05> { [	    y,	Y		]	};
    key <AD06> { [	    f,	F		]	};
    key <AD07> { [	    g,	G		]	};
    key <AD08> { [	    c,	C		]	};
    key <AD09> { [	    r,	R		]	};
    key <AD10> { [	    l,	L		]	};
    key <AD11> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };
    key <AD12> { [	equal,	plus		]	};

    key <AC01> { [	    a,	A 		]	};
    key <AC02> { [	    o,	O		]	};
    key <AC03> { [	    e,	E		]	};
    key <AC04> { [	    u,	U		]	};
    key <AC05> { [	    i,	I		]	};
    key <AC06> { [	    d,	D		]	};
    key <AC07> { [	    h,	H		]	};
    key <AC08> { [	    t,	T		]	};
    key <AC09> { [	    n,	N		]	};
    key <AC10> { [	    s,	S		]	};
    key <AC11> { [	minus,	underscore	]	};

    key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [	    q,	Q		]	};
    key <AB03> { [	    j,	J		]	};
    key <AB04> { [	    k,	K		]	};
    key <AB05> { [	    x,	X		]	};
    key <AB06> { [	    b,	B		]	};
    key <AB07> { [	    m,	M		]	};
    key <AB08> { [	    w,	W		]	};
    key <AB09> { [	    v,	V		]	};
    key <AB10> { [	    z,	Z		]	};
    key <BKSL> { [  backslash,  bar             ]       };
};

// Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
// License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
// Main features: Numbers are in shift position (like French), symbols have been
// placed in locations that give good hand-alternation and finger rolling with
// symbols that usually follows, accented characters are possible for I18N.
partial alphanumeric_keys
xkb_symbols "dvp" {

    include "us(dvorak)"
    name[Group1] = "English (programmer Dvorak)";

    //             Unmodified       Shift           AltGr            Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar,          asciitilde,     dead_tilde                  ] };
    key <AE01> { [ ampersand,       percent                                     ] };
    key <AE02> { [ bracketleft,     7,              currency                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft,       5,              cent                        ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright,      3,              yen                         ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft,       1,              EuroSign                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal,           9,              sterling                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk,        0                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright,      2,              onehalf                     ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus,            4                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright,    6                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam,          8,              exclamdown,      U2E18      ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };  // reversed interrobang
    key <AE12> { [ numbersign,      grave,          dead_grave                  ] };
    key <BKSP> { [ BackSpace,       BackSpace                                   ] };

    // upper row, left side
    key <AD01> { [ semicolon,       colon,          dead_diaeresis              ] };
    key <AD02> { [ comma,           less,           guillemotleft,   ellipsis   ] };
    key <AD03> { [ period,          greater,        guillemotright              ] };
    key <AD04> { [ p,               P,              paragraph,       section    ] };
    key <AD05> { [ y,               Y,              udiaeresis,      Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c,               C,              ccedilla,        Ccedilla   ] };
    key <AD09> { [ r,               R,              registered,      trademark  ] };
    key <AD11> { [ slash,           question,       questiondown,    U203D      ] };  // interrobang
    key <AD12> { [ at,              asciicircum,    dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a,               A,              aring,           Aring      ] };
    key <AC02> { [ o,               O,              oslash,          Ooblique   ] };
    key <AC03> { [ e,               E,              ae,              AE         ] };
    key <AC04> { [ u,               U,              eacute,          Eacute     ] };

    // home row, right side
    key <AC06> { [ d,               D,              eth,             ETH        ] };
    key <AC07> { [ h,               H,              dead_acute                  ] };
    key <AC08> { [ t,               T,              thorn,           THORN      ] };
    key <AC09> { [ n,               N,              ntilde,          Ntilde     ] };
    key <AC10> { [ s,               S,              ssharp                      ] };
    key <AC11> { [ minus,           underscore,     hyphen,          endash     ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash,       bar                                         ] };

    // lower row, left side
    key <AB01> { [ apostrophe,      quotedbl,       dead_acute                  ] };
    key <AB07> { [ m,               M,              mu                          ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    include "level3(ralt_switch)"
};

// phonetic layout for Russian letters on an US keyboard
// by Ivan Popov <pin@konvalo.org> 2005-07-17

// level3 modifier is a shortcut to the "us" meaning of the keys where
// we place cyrillic letters, handy for accessing the corresponding
// punctuation marks.
// It is important to have access to punctuation marks, and the rest of
// alphabetical keys are added for being consequent so that the users
// can expect the level3 modifier to give what the key label shows.

partial alphanumeric_keys
xkb_symbols "rus" {

    include "us(basic)"
    name[Group1]= "Russian (US, phonetic)";

key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key	<LatA> {	[ Cyrillic_a, Cyrillic_A ]	};
    key	<LatB> {	[ Cyrillic_be, Cyrillic_BE ]	};
    key	<LatW> {	[ Cyrillic_ve, Cyrillic_VE ]	};
    key	<LatG> {	[ Cyrillic_ghe, Cyrillic_GHE ]	};
    key	<LatD> {	[ Cyrillic_de, Cyrillic_DE ]	};
    key	<LatE> {	[ Cyrillic_ie, Cyrillic_IE ]	};
    key	<TLDE> {	[ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key	<LatV> {	[ Cyrillic_zhe, Cyrillic_ZHE ]	};
    key	<LatZ> {	[ Cyrillic_ze, Cyrillic_ZE ]	};
    key	<LatI> {	[ Cyrillic_i, Cyrillic_I ]	};
    key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI ]	};
    key	<LatK> {	[ Cyrillic_ka, Cyrillic_KA ]	};
    key	<LatL> {	[ Cyrillic_el, Cyrillic_EL ]	};
    key	<LatM> {	[ Cyrillic_em, Cyrillic_EM ]	};
    key	<LatN> {	[ Cyrillic_en, Cyrillic_EN ]	};
    key	<LatO> {	[ Cyrillic_o, Cyrillic_O ]	};
    key	<LatP> {	[ Cyrillic_pe, Cyrillic_PE ]	};
    key	<LatR> {	[ Cyrillic_er, Cyrillic_ER ]	};
    key	<LatS> {	[ Cyrillic_es, Cyrillic_ES ]	};
    key	<LatT> {	[ Cyrillic_te, Cyrillic_TE ]	};
    key	<LatU> {	[ Cyrillic_u, Cyrillic_U ]	};
    key	<LatF> {	[ Cyrillic_ef, Cyrillic_EF ]	};
    key	<LatH> {	[ Cyrillic_ha, Cyrillic_HA ]	};
    key	<LatC> {	[ Cyrillic_tse, Cyrillic_TSE ]	};
    key <AC10> {        [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key	<AD11> {	[ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key	<AD12> {	[ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ]	};
    key <AE12> {        [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key	<LatY> {	[ Cyrillic_yeru, Cyrillic_YERU ]	};
    key	<LatX> {	[ Cyrillic_softsign, Cyrillic_SOFTSIGN ]	};
    key	<BKSL> {	[ Cyrillic_e, Cyrillic_E, backslash, bar ]	};
    key <AC11> {        [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key	<LatQ> {	[ Cyrillic_ya, Cyrillic_YA ]	};

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "mac" {

    include "us(basic)"
    name[Group1]= "English (Macintosh)";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [   section,  plusminus,       section,        plusminus ] };
    key <TLDE> { [     grave, asciitilde,    dead_grave,        dead_horn ] };
    key <AE01> { [	   1,     exclam,    exclamdown,            U2044 ] };
    key <AE02> { [	   2,         at,     trademark,         EuroSign ] };
    key <AE03> { [	   3, numbersign,      sterling,            U2039 ] };
    key <AE04> { [	   4,     dollar,          cent,            U203A ] };
    key <AE05> { [	   5,    percent,      infinity,            UFB01 ] };
    key <AE06> { [         6,asciicircum,       section,            UFB02 ] };
    key <AE07> { [	   7,  ampersand,     paragraph,     doubledagger ] };
    key <AE08> { [	   8,   asterisk, enfilledcircbullet,      degree ] };
    key <AE09> { [	   9,  parenleft,   ordfeminine,   periodcentered ] };
    key <AE10> { [	   0, parenright,     masculine,singlelowquotemark] };
    key <AE11> { [     minus, underscore,        endash,           emdash ] };
    key <AE12> { [     equal,       plus,      notequal,        plusminus ] };

    key <AD01> { [	   q,          Q,            oe,               OE ] };
    key <AD02> { [	   w,          W,         U2211,doublelowquotemark] };
    key <AD03> { [	   e,          E,    dead_acute,            acute ] };
    key <AD04> { [	   r,          R,    registered,            U2030 ] };
    key <AD05> { [	   t,          T,        dagger,       dead_caron ] };
    key <AD06> { [	   y,          Y,           yen,       onequarter ] };
    key <AD07> { [	   u,        U,  dead_diaeresis,        diaeresis ] };
    key <AD08> { [	   i,        I, dead_circumflex,            U02C6 ] };
    key <AD09> { [	   o,          O,        oslash,         Ooblique ] };
    key <AD10> { [	   p,          P,      Greek_pi,            U220F ] };
    key <AD11> { [ bracketleft,  braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash,        bar, guillemotleft,   guillemotright ] };

    key <AC01> { [	   a,          A,         aring,            Aring ] };
    key <AC02> { [	   s,          S,        ssharp,      dead_stroke ] };
    key <AC03> { [	   d,          D, partialderivative,          eth ] };
    key <AC04> { [	   f,          F,      function,        dead_hook ] };
    key <AC05> { [	   g,          G,     copyright, dead_doubleacute ] };
    key <AC06> { [	   h,          H, dead_abovedot,    dead_belowdot ] };
    key <AC07> { [	   j,          J,         U2206,          onehalf ] };
    key <AC08> { [	   k,          K,dead_abovering,            UF8FF ] };

    key <AC09> { [	   l,          L,       notsign,            THORN ] };
    key <AC10> { [ semicolon,      colon,         U2026,            thorn ] };
    key <AC11> { [apostrophe,   quotedbl,            ae,               AE ] };

    key <AB01> { [	   z,          Z,   Greek_OMEGA,     dead_cedilla ] };
    key <AB02> { [	   x,          X,         U2248,      dead_ogonek ] };
				// unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [	   c,          C,      ccedilla,         Ccedilla ] };
    key <AB04> { [	   v,          V,    squareroot,            U25CA ] };
    key <AB05> { [	   b,          B,      integral,         idotless ] };
    key <AB06> { [	   n,          N,    dead_tilde,            U02DC ] };
    key <AB07> { [	   m,          M,            mu,    threequarters ] };
    key <AB08> { [     comma,       less, lessthanequal,      dead_macron ] };
    key <AB09> { [    period,    greater, greaterthanequal,    dead_breve ] };
    key <AB10> { [     slash,   question,      division,     questiondown ] };

    include "level3(ralt_switch)"
};

// Colemak symbols for xkb on X.Org Server 7.x
// 2006-01-01 Shai Coleman, http://colemak.com/

partial alphanumeric_keys
xkb_symbols "colemak" {

    include "us"
    name[Group1]= "English (Colemak)";

    key <TLDE> { [        grave,   asciitilde,      dead_tilde,       asciitilde ] };
    key <AE01> { [            1,       exclam,      exclamdown,      onesuperior ] };
    key <AE02> { [            2,           at,       masculine,      twosuperior ] };
    key <AE03> { [            3,   numbersign,     ordfeminine,    threesuperior ] };
    key <AE04> { [            4,       dollar,            cent,         sterling ] };
    key <AE05> { [            5,      percent,        EuroSign,              yen ] };
    key <AE06> { [            6,  asciicircum,         hstroke,          Hstroke ] };
    key <AE07> { [            7,    ampersand,             eth,              ETH ] };
    key <AE08> { [            8,     asterisk,           thorn,            THORN ] };
    key <AE09> { [            9,    parenleft,  leftsinglequotemark,  leftdoublequotemark ] };
    key <AE10> { [            0,   parenright, rightsinglequotemark,  rightdoublequotemark ] };
    key <AE11> { [        minus,   underscore,          endash,           emdash ] };
    key <AE12> { [        equal,         plus,        multiply,         division ] };

    key <AD01> { [            q,            Q,      adiaeresis,       Adiaeresis ] };
    key <AD02> { [            w,            W,           aring,            Aring ] };
    key <AD03> { [            f,            F,          atilde,           Atilde ] };
    key <AD04> { [            p,            P,          oslash,         Ooblique ] };
    key <AD05> { [            g,            G,     dead_ogonek,       asciitilde ] };
    key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
    key <AD07> { [            l,            L,         lstroke,          Lstroke ] };
    key <AD08> { [            u,            U,          uacute,           Uacute ] };
    key <AD09> { [            y,            Y,      udiaeresis,       Udiaeresis ] };
    key <AD10> { [    semicolon,        colon,      odiaeresis,       Odiaeresis ] };
    key <AD11> { [  bracketleft,    braceleft,   guillemotleft,        0x1002039 ] };
    key <AD12> { [ bracketright,   braceright,  guillemotright,        0x100203a ] };
    key <BKSL> { [    backslash,          bar,      asciitilde,       asciitilde ] };

    key <AC01> { [            a,            A,          aacute,           Aacute ] };
    key <AC02> { [            r,            R,      dead_grave,       asciitilde ] };
    key <AC03> { [            s,            S,          ssharp,       asciitilde ] };
    key <AC04> { [            t,            T,      dead_acute, dead_doubleacute ] };
    key <AC05> { [            d,            D,  dead_diaeresis,       asciitilde ] };
    key <AC06> { [            h,            H,      dead_caron,       asciitilde ] };
    key <AC07> { [            n,            N,          ntilde,           Ntilde ] };
    key <AC08> { [            e,            E,          eacute,           Eacute ] };
    key <AC09> { [            i,            I,          iacute,           Iacute ] };
    key <AC10> { [            o,            O,          oacute,           Oacute ] };
    key <AC11> { [   apostrophe,     quotedbl,          otilde,           Otilde ] };

    key <AB01> { [            z,            Z,              ae,               AE ] };
    key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };
    key <AB03> { [            c,            C,        ccedilla,         Ccedilla ] };
    key <AB04> { [            v,            V,              oe,               OE ] };
    key <AB05> { [            b,            B,      dead_breve,       asciitilde ] };
    key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };
    key <AB07> { [            m,            M,     dead_macron,       asciitilde ] };
    key <AB08> { [        comma,         less,    dead_cedilla,       asciitilde ] };
    key <AB09> { [       period,      greater,   dead_abovedot,       asciitilde ] };
    key <AB10> { [        slash,     question,    questiondown,       asciitilde ] };

    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
    key <LSGT> { [        minus,   underscore,          endash,           emdash ] };
    key <SPCE> { [        space,        space,           space,     nobreakspace ] };

    include "level3(ralt_switch)"
};

// I do NOT like dead-keys - the International keyboard as defined by Microsoft
// doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
// and <space> generates a single ') just to have an é (eacute) in two strokes
// as well? I type ' more often than é (eacute).
//
// This file works just like a regular keyboard, BUT has all dead-keys
// accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
// followed by an e. In other words, this keyboard is not international as long
// as you leave the right Alt key alone.
//
// The original MS International keyboard was intended for Latin1 (iso8859-1).
// With the introduction of iso8859-15, the (important) ligature oe (and OE)
// became available. I added them next to ae. Because I write ediaeresis more
// often than registered, I moved registered to be next to copyright and added
// ediaeresis and idiaeresis. - Adriaan

partial alphanumeric_keys
xkb_symbols "altgr-intl" {

   include "us(intl)"
   name[Group1]= "English (international AltGr dead keys)";

// five dead keys moved into level3:

   key <TLDE> { [    grave, asciitilde,  dead_grave,   dead_tilde      ] };
   key <AC11> { [apostrophe,quotedbl,    dead_acute,   dead_diaeresis  ] };

// diversions from the MS Intl keyboard:

   key <AE01> { [        1, exclam,      onesuperior,  exclamdown      ] };
   key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
   key <AC07> { [        j, J,           idiaeresis,   Idiaeresis      ] };
   key <AB02> { [        x, X,           oe,           OE              ] };
   key <AB04> { [        v, V,           registered,   registered      ] };

// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

   key <AE06> { [        6, asciicircum, dead_circumflex, onequarter    ] };
   key <AE07> { [        7, ampersand,   dead_horn,       onehalf       ] };
   key <AE08> { [        8, asterisk,    dead_ogonek,     threequarters ] };

   include "level3(ralt_switch)"
};

// Intel ClassmatePC Keyboard Layout
// by Piter PUNK <piterpk@terra.com.br>
//
// The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
// to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
// the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.

// classmate - us(basic)
partial alphanumeric_keys
xkb_symbols "classmate" {
    include "us(basic)"
    name[Group1]= "English (US)";

    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };

    include "eurosign(5)"
    include "level3(switch)"
};

// classmate-intl - us(intl)
// RCTL is generated by Fn+Alt, because that, when trying to access
// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
// generate the same symbol as the original key.
partial alphanumeric_keys
xkb_symbols "classmate-intl" {
    include "us(intl)"
    name[Group1]= "USA - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };

    key <KP7>  { [	KP_Home,		KP_7,	
			onehalf,		dead_horn	] };
    key <KP8>  { [	KP_Up,			KP_8,
			threequarters,		dead_ogonek	] };
    key <KP9>  { [	KP_Prior,		KP_9,
			leftsinglequotemark,	dead_breve	] };
    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
			rightsinglequotemark,	dead_abovering	] };

    key <KP4>  { [	KP_Left,		KP_4,
			uacute,			Uacute		] };
    key <KP5>  { [	KP_Begin,		KP_5,
			iacute,			Iacute		] };
    key <KP6>  { [	KP_Right,		KP_6,
			oacute,			Oacute		] };
    key <KPSU> { [	KP_Subtract,		KP_Subtract,
			odiaeresis,		Odiaeresis	] };

    key <KP2>  { [	KP_Down,		KP_2,
			oe,			OE		] };
    key <KP3>  { [	KP_Next,		KP_3,
			oslash,			Ooblique	] };
    key <KPAD> { [ 	KP_Add,     		KP_Add,
			paragraph,		degree          ] };

    key <KP0>  { [	KP_Insert,		KP_0,
			mu,			mu	] };
    key <KPDL> { [	KP_Delete,		KP_Decimal,
			dead_abovedot,		dead_caron	] };
    key <KPDV> { [ 	KP_Divide,   		KP_Divide,
			questiondown,		dead_hook       ] };

    include "level3(switch)"
};

// classmate-alt-intl - us(alt-intl)
// RCTL is generated by Fn+Alt, because that, when trying to access
// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
// generate the same symbol as the original key.
partial alphanumeric_keys
xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "USA - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };

    key <KPSU> { [	KP_Subtract,		KP_Subtract	] };

    key <KP9>  { [	KP_Prior,		KP_9,
			leftsinglequotemark,	dead_breve	] };
    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
			rightsinglequotemark,	dead_abovering	] };

    key <KPAD> { [ 	KP_Add,     		KP_Add,
			dead_ogonek,		dead_diaeresis   ] };

    key <KPDL> { [	KP_Delete,		KP_Decimal,
			dead_abovedot,		dead_circumflex	] };
    key <KPDV> { [ 	KP_Divide,   		KP_Divide,
			dead_hook,		dead_hook       ] };

    include "level3(switch)"
};

// classmate-altgr-intl - us(altgr-intl)
// RCTL is generated by Fn+Alt, because that, when trying to access
// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
// the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
// generate the same symbol as the original key.
partial alphanumeric_keys
xkb_symbols "classmate-altgr-intl" {
    include "us(altgr-intl)"
    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash,	bar,		backslash,	bar ] };

    key <KP7>  { [	KP_Home,		KP_7,	
			dead_horn,		dead_horn	] };
    key <KP8>  { [	KP_Up,			KP_8,
			dead_ogonek,		dead_ogonek	] };
    key <KP9>  { [	KP_Prior,		KP_9,
			leftsinglequotemark,	dead_breve	] };
    key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
			rightsinglequotemark,	dead_abovering	] };

    key <KP4>  { [	KP_Left,		KP_4,
			uacute,			Uacute		] };
    key <KP5>  { [	KP_Begin,		KP_5,
			iacute,			Iacute		] };
    key <KP6>  { [	KP_Right,		KP_6,
			oacute,			Oacute		] };
    key <KPSU> { [	KP_Subtract,		KP_Subtract,
			odiaeresis,		Odiaeresis	] };

    key <KP1>  { [	KP_End,			KP_1,
			idiaeresis,		Idiaeresis	] };
    key <KP2>  { [	KP_Down,		KP_2,
			oe,			OE		] };
    key <KP3>  { [	KP_Next,		KP_3,
			oslash,			Ooblique	] };
    key <KPAD> { [ 	KP_Add,     		KP_Add,
			paragraph,		degree          ] };

    key <KP0>  { [	KP_Insert,		KP_0,
			mu,			mu	] };
    key <KPDL> { [	KP_Delete,		KP_Decimal,
			dead_abovedot,		dead_caron	] };
    key <KPDV> { [ 	KP_Divide,   		KP_Divide,
			questiondown,		dead_hook       ] };

    include "level3(switch)"
};

partial alphanumeric_keys
xkb_symbols "olpc" {

   include "us(basic)"
   name[Group1]= "English (US)";

   // OLPC international US English keyboard layout.
   // It's a little different from the usual international layout.
   // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };
   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };
   key <AE02> { [         2,         at,       notsign,    notsign ] };
   key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave
   key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute
   key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above
   key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above
   key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above
   key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above
   key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above
   key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above
   key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above
   key <AE12> { [     equal,       plus,     0x1000303,  0x1000303 ] }; // combining tilde above

   key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };
   key <AD02> { [         w,          W,       oslash,      Oslash ] };
   key <AD03> { [         e,          E,           oe,          OE ] };
   key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla
   key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below
   key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below
   key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below
   key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below
   key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below
   key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below
   key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below
   key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below

   key <AC01>  { [         a,          A,          ae,               AE ] };
   key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp
   key <AC03>  { [         d,          D,         eth,              ETH ] };
   key <AC04>  { [         f,          F,       thorn,            THORN ] };
   key <AC06>  { [         h,          H,    sterling,         sterling ] };
   key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };
   key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };
   key <AC11>  { [ apostrophe,  quotedbl,    currency,         currency ] };
   key <AC12>  { [ backslash,        bar,      section,         section ] };

   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
   key <AB07>  { [         m,          M,          mu,               mu ] };
   key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };
   key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };
   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };

   key <I219>  { [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };

   include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "olpc2" {
   include "us(olpc)"
   name[Group1]= "English (the divide/multiply keys toggle the layout)";
   include "group(olpc)"
};

xkb_symbols "olpcm" {

   include "us(basic)"
   name[Group1]= "English (US)";

   // Mechanical (non-membrane) OLPC int'l US English keyboard layout.
   // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard

   key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };
   key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };
   key <AE02> { [         2,         at,       notsign,    notsign ] };
   key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave
   key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute
   key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above
   key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above
   key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above
   key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above
   key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above
   key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above
   key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above

   key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };
   key <AD02> { [         w,          W,       oslash,      Oslash ] };
   key <AD03> { [         e,          E,           oe,          OE ] };
   key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla
   key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below
   key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below
   key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below
   key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below
   key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below
   key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below
   key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below
   key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below

   key <AC01>  { [         a,          A,          ae,               AE ] };
   key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp
   key <AC03>  { [         d,          D,         eth,              ETH ] };
   key <AC04>  { [         f,          F,       thorn,            THORN ] };
   key <AC06>  { [         h,          H,    sterling,         sterling ] };
   key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };
   key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };
   // no AC11 or AC12 on olpcm

   key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
   key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
   key <AB07>  { [         m,          M,          mu,               mu ] };
   key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };
   key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };
   key <AB10>  { [     slash,   question, questiondown,    questiondown ] };

   key <AA02>  { [ backslash,        bar,      section,         section ] };
   key <AA06>  { [     equal,       plus,     0x1000303,  0x1000303 ] };
   key <AA07>  { [ apostrophe,  quotedbl,    currency,         currency ] };

   include "level3(ralt_switch)"
};

// Based on Cherokee Nation Official Layout
// http://www.cherokee.org/extras/downloads/font/Keyboard.htm

partial alphanumeric_keys modifier_keys
xkb_symbols "chr" {

    name[Group1]= "Cherokee";
    key.type[group1]="ALPHABETIC";

    key <TLDE> { [      grave,      U13CA ] };
    key <AE01> { [          1,      U13B1 ] };
    key <AE02> { [          2,      U13C7 ] };
    key <AE03> { [          3,      U13E7 ] };
    key <AE04> { [      U13D9,      U13B0 ] };
    key <AE05> { [      U13E6,      U13B9 ] };
    key <AE06> { [      U13DC,      U13DD ] };
    key <AE07> { [      U13CB,      U13E1 ] };
    key <AE08> { [      U13D6,      U13BA ] };
    key <AE09> { [      U13D2,  parenleft ] };
    key <AE10> { [      U13C4, parenright ] };
    key <AE11> { [      U13BF,      U13BC ] };
    key <AE12> { [      U13F3,      U13BD ] };

    key <AD01> { [      U13AA,      U13C6 ] };
    key <AD02> { [      U13B3,      U13EB ] };
    key <AD03> { [      U13A1,      U13E3 ] };
    key <AD04> { [      U13DB,      U13CF ] };
    key <AD05> { [      U13D4,      U13D8 ] };
    key <AD06> { [      U13EF,      U13F2 ] };
    key <AD07> { [      U13A4,      U13AD ] };
    key <AD08> { [      U13A2,      U13F1 ] };
    key <AD09> { [      U13A3,      U13EC ] };
    key <AD10> { [      U13C1,      U13EA ] };
    key <AD11> { [      U13D5,      U13D1 ] };
    key <AD12> { [      U13B6,      U13E4 ] };
    key <BKSL> { [      U13E9,      U13EE ] };

    key <AC01> { [      U13A0,      U13CC ] };
    key <AC02> { [      U13CD,      U13CE ] };
    key <AC03> { [      U13D7,      U13D0 ] };
    key <AC04> { [      U13A9,      U13C8 ] };
    key <AC05> { [      U13A6,      U13E5 ] };
    key <AC06> { [      U13AF,      U13B2 ] };
    key <AC07> { [      U13DA,      U13AB ] };
    key <AC08> { [      U13B8,      U13A7 ] };
    key <AC09> { [      U13B5,      U13AE ] };
    key <AC10> { [      U13E8,      U13E0 ] };
    key <AC11> { [ apostrophe,   quotedbl ] };

    key <AB01> { [      U13AC,      U13C3 ] };
    key <AB02> { [      U13F4,      U13ED ] };
    key <AB03> { [      U13D3,      U13DF ] };
    key <AB04> { [      U13A5,      U13DE ] };
    key <AB05> { [      U13A8,      U13F0 ] };
    key <AB06> { [      U13BE,      U13BB ] };
    key <AB07> { [      U13C5,      U13B7 ] };
    key <AB08> { [      comma,      U13E2 ] };
    key <AB09> { [     period,      U13B4 ] };
    key <AB10> { [      U13C2,      U13C9 ] };
};

// Serbian charecters added as third level symbols to US keyboard layout.

partial alphanumeric_keys
xkb_symbols "hbs" {

  include "us"
  name[Group1]= "Serbo-Croatian (US)";

  key <TLDE> { [ grave, asciitilde ] };
  key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
  key <AE08> { [ 8, asterisk, multiply, division ] };
  key <AE11> { [ minus, underscore, endash, emdash ] };
  key <AC09> { [ l, L, U1C9, U1C8 ] };
  key <AB06> { [ n, N, U1CC, U1CB ] };
  key <AB01> { [ z, Z, U1C6, U1C5 ] };
  key <AD03> { [ e, E, EuroSign, cent ] };
  key <AC03> { [ d, D, dstroke, Dstroke ] };
  key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
  key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
  key <AB08> { [ comma, less, U3003, guillemotright ] };
  key <AB09> { [ period, greater, ellipsis, guillemotleft ] };

  include "level3(ralt_switch)"
};

//based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
partial alphanumeric_keys
xkb_symbols "htcdream" {
        include "inet(htcdream)"
        name[Group1]= "English (US)";

        //second row
        key <AD01> { [ q, Q, Tab, Tab ] };
        key <AD02> { [ w, W, grave, grave ] };
        key <AD03> { [ e, E, underscore, underscore ] };
        key <AD04> { [ r, R, sterling, sterling ] };
        key <AD05> { [ t, T, EuroSign, EuroSign ] };
        key <AD06> { [ y, Y, division, division ] };
        key <AD07> { [ u, U, multiply, multiply ] };
        key <AD08> { [ i, I, minus, minus ] };
        key <AD09> { [ o, O, plus, plus ] };
        key <AD10> { [ p, P, equal, equal ] };

        //third row
        key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
        key <AC02> { [ s, S, bar, bar ] };
        key <AC03> { [ d ,D, backslash, backslash ] };
        key <AC04> { [ f, F, braceleft, braceleft ] };
        key <AC05> { [ g, G, braceright, braceright ] };
        key <AC06> { [ h, H, colon, colon ] };
        key <AC07> { [ j, J, semicolon, semicolon ] };
        key <AC08> { [ k, K, quotedbl, quotedbl ] };
        key <AC09> { [ l, L, apostrophe, apostrophe ] };

        //forth row
        key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
        key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
        key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
        key <AB04> { [ v, V, bracketleft, bracketleft ] };
        key <AB05> { [ b, B, bracketright, bracketright ] };
        key <AB06> { [ n, N, less, less ] };
        key <AB07> { [ m, M, greater, greater ] };
        key <AB08> { [ comma, comma, question, question ] };

        //fifth row
        key <FK15> { [ at, at, asciitilde, asciitilde ] };

        include "level3(alt_switch)"
};

// Workman Keyboard Layout symbols for xkb on X.Org Server 7.x
// 09-06-2010 OJ Bucao. http://www.workmanlayout.com

partial alphanumeric_keys
xkb_symbols "workman" {

    include "us(basic)"
    name[Group1]= "English (Workman)";

    key <AD01> {  [   q,  Q   ] };
    key <AD02> {  [   d,  D   ] };
    key <AD03> {  [   r,  R   ] };
    key <AD04> {  [   w,  W   ] };
    key <AD05> {  [   b,  B   ] };
    key <AD06> {  [   j,  J   ] };
    key <AD07> {  [   f,  F   ] };
    key <AD08> {  [   u,  U   ] };
    key <AD09> {  [   p,  P   ] };
    key <AD10> {  [   semicolon,  colon   ] };

    key <AC01> {  [   a,  A   ] };
    key <AC02> {  [   s,  S   ] };
    key <AC03> {  [   h,  H   ] };
    key <AC04> {  [   t,  T   ] };
    key <AC05> {  [   g,  G   ] };
    key <AC06> {  [   y,  Y   ] };
    key <AC07> {  [   n,  N   ] };
    key <AC08> {  [   e,  E   ] };
    key <AC09> {  [   o,  O   ] };
    key <AC10> {  [   i,  I   ] };

    key <AB01> {  [   z,  Z   ] };
    key <AB02> {  [   x,  X   ] };
    key <AB03> {  [   m,  M   ] };
    key <AB04> {  [   c,  C   ] };
    key <AB05> {  [   v,  V   ] };
    key <AB06> {  [   k,  K   ] };
    key <AB07> {  [   l,  L   ] };

    key <CAPS> { [    BackSpace,       Escape,       BackSpace,        BackSpace ] };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "workman-intl" {

    include "us(intl)"
    name[Group1]= "English (Workman, international with dead keys)";

    key <AD01> { [     q,          Q,    adiaeresis,       Adiaeresis ] };
    key <AD02> { [     d,          D,           eth,              ETH ] };
    key <AD03> { [     r,          R,    registered,       registered ] };
    key <AD04> { [     w,          W,         aring,            Aring ] };
    key <AD05> { [     b,          B,             b,                B ] };
    key <AD06> { [     j,          J,             j,                J ] };
    key <AD07> { [     f,          F,             f,                F ] };
    key <AD08> { [     u,          U,        uacute,           Uacute ] };
    key <AD09> { [     p,          P,    odiaeresis,       Odiaeresis ] };
    key <AD10> { [ semicolon,  colon,     paragraph,           degree ] };

    key <AC01> { [     a,          A,        aacute,           Aacute ] };
    key <AC02> { [     s,          S,        ssharp,          section ] };
    key <AC03> { [     h,          H,             h,                H ] };
    key <AC04> { [     t,          T,         thorn,            THORN ] };
    key <AC05> { [     g,          G,             g,                G ] };
    key <AC06> { [     y,          Y,    udiaeresis,       Udiaeresis ] };
    key <AC07> { [     n,          N,        ntilde,           Ntilde ] };
    key <AC08> { [     e,          E,        eacute,           Eacute ] };
    key <AC09> { [     o,          O,        oacute,           Oacute ] };
    key <AC10> { [     i,          I,        iacute,           Iacute ] };

    key <AB01> { [     z,          Z,            ae,               AE ] };
    key <AB02> { [     x,          X,             x,                X ] };
    key <AB03> { [     m,          M,            mu,               mu ] };
    key <AB04> { [     c,          C,     copyright,             cent ] };
    key <AB05> { [     v,          V,             v,                V ] };
    key <AB06> { [     k,          K,            oe,               OE ] };
    key <AB07> { [     l,          L,        oslash,         Ooblique ] };

    key <CAPS> { [ BackSpace, Escape,     BackSpace,        BackSpace ] };

    include "level3(ralt_switch)"
};

// Norman keyboard layout symbols for xkb on X.Org Server 7.x
// Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any warranty.

partial alphanumeric_keys
xkb_symbols "norman" {

    include "us(basic)"
    name[Group1]= "English (Norman)";

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ d, D ] };
    key <AD04> { [ f, F ] };
    key <AD05> { [ k, K ] };
    key <AD06> { [ j, J ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ r, R ] };
    key <AD09> { [ l, L ] };
    key <AD10> { [ semicolon, colon ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ t, T ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ y, Y ] };
    key <AC07> { [ n, N ] };
    key <AC08> { [ i, I ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ h, H ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ p, P ] };
    key <AB07> { [ m, M ] };

    key <CAPS> { [ BackSpace ] };

    include "level3(ralt_switch)"
};

// EXTRAS:

// Czech, Slovak and German charecters added as third level symbols to US keyboard layout.
partial alphanumeric_keys
xkb_symbols "cz_sk_de" {

    include "us"
    name[Group1]="Czech Slovak and German (US)";

    key <TLDE>  { [grave,   asciitilde, uring,      Uring       ] };
    key <AE01>	{ [    1,	exclam,	uacute,	    Uacute	] };
    key <AE02>	{ [    2,           at, ecaron,	    Ecaron	] };
    key <AE03>	{ [    3,   numbersign, scaron,	    Scaron	] };
    key <AE04>	{ [    4,       dollar,	ccaron,	    Ccaron	] };
    key <AE05>	{ [    5,      percent, rcaron,	    Rcaron	] };
    key <AE06>	{ [    6,  asciicircum, zcaron,	    Zcaron	] };
    key <AE07>	{ [    7,    ampersand,	yacute,	    Yacute	] };
    key <AE08>	{ [    8,     asterisk, aacute,	    Aacute	] };
    key <AE09>	{ [    9,    parenleft,	iacute,	    Iacute	] };
    key <AE10>	{ [    0,   parenright, eacute,	    Eacute	] };
    key <AE11>	{ [minus,   underscore, ssharp,     0x1001E9E	] };
    key <AE12>	{ [equal,	  plus, dead_acute, dead_caron  ] };

    key <AD03>	{ [         e,          E,     EuroSign,     Eacute ]	};

    key <AD11>	{ [bracketleft, braceleft,   udiaeresis,   Udiaeresis ]	};
    key <AC10>	{ [ semicolon,      colon,   odiaeresis,   Odiaeresis ]	};
    key <AC11>	{ [apostrophe,      quotedbl,adiaeresis,   Adiaeresis ]	};

    key <AC01>	{ [         a,          A,     aacute,	     Aacute   ]	};
    key <AD08>	{ [         i,          I,     iacute,	     Iacute   ]	};
    key <AD09>	{ [         o,          O,     oacute,       Oacute   ]	};
    key <AD06>	{ [         y,          Y,     yacute,       Yacute   ]	};
    key <AD07>	{ [         u,          U,     uring,	     Uring    ]	};

    key <AC02>	{ [         s,          S,     scaron,       Scaron   ]	};
    key <AB01>	{ [         z,          Z,     zcaron,	     Zcaron   ]	};
    key <AB03>	{ [         c,          C,     ccaron,       Ccaron   ]	};
    key <AD04>	{ [         r,          R,     rcaron,	     Rcaron   ]	};
    key <AD05>	{ [         t,          T,     tcaron,	     Tcaron   ]	};
    key <AC03>	{ [         d,          D,     dcaron,	     Dcaron   ]	};
    key <AB06>	{ [         n,          N,     ncaron,	     Ncaron   ]	};
    key <AC09>  { [         l,          L,     lcaron,       Lcaron   ] };
    key <AD10>  { [         p,          P,ocircumflex,  Ocircumflex   ] };

    key <SPCE>  { [     space,       space, nobreakspace, nobreakspace] };

    include "level3(ralt_switch)"
};

// XCompose is out! Unicode combining is in!  For those of us who live
// on the edge: A keymap using Unicode combining characters instead of
// deadkeys.  This variation does not deviate from the lame MS-style
// US-intl layout; but it uses AltGr for combining, like altgr-intl.
//
// This might break your font layout layout systems (because they
// suck), caveat emptor.  Also, most of today's software will count
// individual combining marks for selection, deletion, character
// counting &c., and won't be smart enough to do canonical equivalence
// when searching, &c.
//
// With Unicode combining you use "handwriting order", not
// "typewriting order" as with deadkeys.  That is, you first type the
// base character, then the diacritics/accents/modifiers.  This has
// the advantage of avoiding hidden states --- each keypress changes
// something on screen.
//
// TODO: as of now, this duplicates all us(intl) functionality with
// combining.  With care, perhaps we could add more combining marks
// not present in intl, and support all major languages.
partial alphanumeric_keys
xkb_symbols "intl-unicode" {

 name[Group1]= "English (US, international AltGr Unicode combining)";

 include "us(intl)"
 include "level3(ralt_switch)"

 // grave, tilde
 key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
 // double acute
 key <AE02> { [ 2, at, twosuperior, U030B ] };
 // macron
 key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
 // circumflex
 key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
 // horn
 key <AE07> { [ 7, ampersand, onehalf, U031B ] };
 // ogonek
 key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
 // breve
 key <AE09> { [	 9, parenleft, leftsinglequotemark, U0306 ] };
 // abovering
 key <AE10> { [	 0, parenright, rightsinglequotemark, U030A ] };

 // belowdot
 key <AE11> { [ minus, underscore, yen, U0323 ] };
 // acute, diaeresis
 key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
 // abovedot, caron
 key <AB09> { [ period, greater, U0307, U030C ] };
 // hook
 key <AB10> { [ slash, question, questiondown, U0309 ] };

 // alt-intl compatibility
 // cedilla, caron
 key <AB08> { [ comma, less,	 U0327, U030C ] };
 // ogonek, diaeresis
 key <AC10> { [ semicolon, colon,	 U0328, U0308 ] };
 // doubleacute, horn
 key <AE12> { [ equal, plus,	 U030B, U031B ] };

 // we don't do combining latin letters and combining enclosures
 // because support for those is very rare.
};

// XCompose is out! Unicode combining is in! For those of us who live
// on the edge: A keymap using Unicode combining characters instead of
// deadkeys. This variation does break compatibility with us-intl,
// whenever I thought it would be more mnemonic or Unicodeish.
partial alphanumeric_keys
xkb_symbols "alt-intl-unicode" {

 name[Group1]= "English (US, international AltGr Unicode combining, alternative)";

 include "us(intl-unicode)"

 // easier macron; em-dash.
 // em-dash is available via compose, but I added here since it's such
 // an important typographic character.
 key <AE11> { [ minus, underscore, U0304, U2014 ] };

 // belowdot, abovedot (caron at coma/less key, per above)
 key <AB09> { [ period, greater, U0323, U0307 ] };

};

partial alphanumeric_keys
xkb_symbols "ats" {

    include "us"
    name[Group1]= "Atsina";

    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
    //q, l, t, s, m, g, k, p, w, y, r
    //XCompose key is used for the other accute and grave.

    key <AD03> { [ e, E, eacute, Eacute  ] };
    key <AD07> { [ u, U, uacute, Uacute  ] };
    key <AD08> { [ i, I, iacute, Iacute  ] };
    key <AD09> { [ o, O, oacute, Oacute  ] };
    key <AD11> { [ bracketleft,	braceleft, U03B8 ] };
    key <AD12> { [ bracketright, braceright, U010D, U010C ] };
    //U+010C (uppercase Č) and U+010D (lowercase č).

    key <AC01> { [ a, A, aacute, Aacute  ] };

    //Small letter Open use compose to key get acute accent
    key <AB03> { [ c,	C, U0254, U0186		  ] };
    key <AB08> { [ comma,     less, U0313 ] };
    key <AB10> { [ slash, question, U0294 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
};

partial alphanumeric_keys
xkb_symbols "crd" {

  include "us"
  name[Group1]= "Coeur d'Alene Salish";

  key <AD02> { [         w,           W, U02B7, U02B7 ] };
  key <AE07> { [         7,   ampersand, U0294        ] };
  key <AD01> { [         q,           Q, U221A        ] };
  key <AB04> { [         v,           V, U0259        ] };
  key <BKSL> { [ backslash,         bar, U026B        ] };
  key <AD03> { [         e,           E, U025B        ] };
  key <AD08> { [         i,           I, U026A        ] };
  key <AC07> { [         j,           J, U01F0        ] };
  key <AE06> { [         6, asciicircum, U0295        ] };
  key <AC02> { [         s,           S, U0161        ] };
  key <AB03> { [         c,           C, U010D        ] };
  key <AD09> { [         o,           O, U0254        ] };
  key <AB09> { [    period,     greater, U0323        ] };

  include "level3(ralt_switch)"
  include "compose(rctrl)"
};


partial alphanumeric_keys
	xkb_symbols "sun_type6" {
	include "sun_vndr/us(sun_type6)"
};
! model
  pc101           Generic 101-key PC
  pc102           Generic 102-key (Intl) PC
  pc104           Generic 104-key PC
  pc105           Generic 105-key (Intl) PC
  dell101         Dell 101-key PC
  latitude        Dell Latitude series laptop
  dellm65         Dell Precision M65
  everex          Everex STEPnote
  flexpro         Keytronic FlexPro
  microsoft       Microsoft Natural
  omnikey101      Northgate OmniKey 101
  winbook         Winbook Model XP5
  pc98            PC-98xx Series
  a4techKB21      A4Tech KB-21
  a4techKBS8      A4Tech KBS-8
  a4_rfkb23       A4Tech Wireless Desktop RFKB-23
  airkey          Acer AirKey V
  azonaRF2300     Azona RF2300 wireless Internet Keyboard
  scorpius        Advance Scorpius KI
  brother         Brother Internet Keyboard
  btc5113rf       BTC 5113RF Multimedia
  btc5126t        BTC 5126T
  btc6301urf      BTC 6301URF
  btc9000         BTC 9000
  btc9000a        BTC 9000A
  btc9001ah       BTC 9001AH
  btc5090         BTC 5090
  btc9019u        BTC 9019U
  btc9116u        BTC 9116U Mini Wireless Internet and Gaming
  cherryblue      Cherry Blue Line CyBo@rd
  cherryblueb     Cherry CyMotion Master XPress
  cherrybluea     Cherry Blue Line CyBo@rd (alternate option)
  cherrycyboard   Cherry CyBo@rd USB-Hub
  cherrycmexpert  Cherry CyMotion Expert
  cherrybunlim    Cherry B.UNLIMITED
  chicony         Chicony Internet Keyboard
  chicony0108     Chicony KU-0108
  chicony0420     Chicony KU-0420
  chicony9885     Chicony KB-9885
  compaqeak8      Compaq Easy Access Keyboard
  compaqik7       Compaq Internet Keyboard (7 keys)
  compaqik13      Compaq Internet Keyboard (13 keys)
  compaqik18      Compaq Internet Keyboard (18 keys)
  cymotionlinux   Cherry CyMotion Master Linux
  armada          Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
  presario        Laptop/notebook Compaq (eg. Presario) Internet Keyboard
  ipaq            Compaq iPaq Keyboard
  dell            Dell
  dellsk8125      Dell SK-8125
  dellsk8135      Dell SK-8135
  dellusbmm       Dell USB Multimedia Keyboard
  inspiron        Dell Laptop/notebook Inspiron 6xxx/8xxx
  precision_m     Dell Laptop/notebook Precision M series
  dexxa           Dexxa Wireless Desktop Keyboard
  diamond         Diamond 9801 / 9802 series
  dtk2000         DTK2000
  ennyah_dkb1008  Ennyah DKB-1008
  fscaa1667g      Fujitsu-Siemens Computers AMILO laptop
  genius          Genius Comfy KB-16M / Genius MM Keyboard KWD-910
  geniuscomfy     Genius Comfy KB-12e
  geniuscomfy2    Genius Comfy KB-21e-Scroll
  geniuskb19e     Genius KB-19e NB
  geniuskkb2050hs Genius KKB-2050HS
  gyration        Gyration
  htcdream        HTC Dream
  kinesis         Kinesis
  logitech_base   Logitech Generic Keyboard
  logitech_g15    Logitech G15 extra keys via G15daemon
  hpi6            Hewlett-Packard Internet Keyboard
  hp250x          Hewlett-Packard SK-250x Multimedia Keyboard
  hpxe3gc         Hewlett-Packard Omnibook XE3 GC
  hpxe3gf         Hewlett-Packard Omnibook XE3 GF
  hpxt1000        Hewlett-Packard Omnibook XT1000
  hpdv5           Hewlett-Packard Pavilion dv5
  hpzt11xx        Hewlett-Packard Pavilion ZT11xx
  hp500fa         Hewlett-Packard Omnibook 500 FA
  hp5xx           Hewlett-Packard Omnibook 5xx
  hpnx9020        Hewlett-Packard nx9020
  hp6000          Hewlett-Packard Omnibook 6000/6100
  honeywell_euroboard Honeywell Euroboard
  hpmini110       Hewlett-Packard Mini 110 Notebook
  rapidaccess     IBM Rapid Access
  rapidaccess2    IBM Rapid Access II
  thinkpad        IBM ThinkPad 560Z/600/600E/A22E
  thinkpad60      IBM ThinkPad R60/T60/R61/T61
  thinkpadz60     IBM ThinkPad Z60m/Z60t/Z61m/Z61t
  ibm_spacesaver  IBM Space Saver
  logiaccess      Logitech Access Keyboard
  logiclx300      Logitech Cordless Desktop LX-300
  logii350        Logitech Internet 350 Keyboard
  logimel         Logitech Media Elite Keyboard
  logicd          Logitech Cordless Desktop
  logicd_it       Logitech Cordless Desktop iTouch
  logicd_nav      Logitech Cordless Desktop Navigator
  logicd_opt      Logitech Cordless Desktop Optical
  logicda         Logitech Cordless Desktop (alternate option)
  logicdpa2       Logitech Cordless Desktop Pro (alternate option 2)
  logicfn         Logitech Cordless Freedom/Desktop Navigator
  logicdn         Logitech Cordless Desktop Navigator
  logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
  logiik          Logitech Internet Keyboard
  itouch          Logitech iTouch
  logicink        Logitech Internet Navigator Keyboard
  logiex110       Logitech Cordless Desktop EX110
  logiinkse       Logitech iTouch Internet Navigator Keyboard SE
  logiinkseusb    Logitech iTouch Internet Navigator Keyboard SE (USB)
  logiultrax      Logitech Ultra-X Keyboard
  logiultraxc     Logitech Ultra-X Cordless Media Desktop Keyboard
  logidinovo      Logitech diNovo Keyboard
  logidinovoedge  Logitech diNovo Edge Keyboard
  mx1998          Memorex MX1998
  mx2500          Memorex MX2500 EZ-Access Keyboard
  mx2750          Memorex MX2750
  microsoft4000   Microsoft Natural Wireless Ergonomic Keyboard 4000
  microsoft7000   Microsoft Natural Wireless Ergonomic Keyboard 7000
  microsoftinet   Microsoft Internet Keyboard
  microsoftpro    Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
  microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
  microsoftprooem Microsoft Natural Keyboard Pro OEM
  vsonku306       ViewSonic KU-306 Internet Keyboard
  microsoftprose  Microsoft Internet Keyboard Pro, Swedish
  microsoftoffice Microsoft Office Keyboard
  microsoftmult   Microsoft Wireless Multimedia Keyboard 1.0A
  microsoftelite  Microsoft Natural Keyboard Elite
  microsoftccurve2k Microsoft Comfort Curve Keyboard 2000
  oretec          Ortek MCK-800 MM/Internet keyboard
  propeller       Propeller Voyager (KTEZ-1000)
  qtronix         QTronix Scorpius 98N+
  samsung4500     Samsung SDM 4500P
  samsung4510     Samsung SDM 4510P
  sanwaskbkg3     Sanwa Supply SKB-KG3
  sk1300          SK-1300
  sk2500          SK-2500
  sk6200          SK-6200
  sk7100          SK-7100
  sp_inet         Super Power Multimedia Keyboard
  sven            SVEN Ergonomic 2500
  sven303         SVEN Slim 303
  symplon         Symplon PaceBook (tablet PC)
  toshiba_s3000   Toshiba Satellite S3000
  trust           Trust Wireless Keyboard Classic
  trustda         Trust Direct Access Keyboard
  trust_slimline  Trust Slimline
  tm2020          TypeMatrix EZ-Reach 2020
  tm2030PS2       TypeMatrix EZ-Reach 2030 PS2
  tm2030USB       TypeMatrix EZ-Reach 2030 USB
  tm2030USB-102   TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
  tm2030USB-106   TypeMatrix EZ-Reach 2030 USB (106:JP mode)
  yahoo           Yahoo! Internet Keyboard
  macbook78       MacBook/MacBook Pro
  macbook79       MacBook/MacBook Pro (Intl)
  macintosh       Macintosh
  macintosh_old   Macintosh Old
  macintosh_hhk   Happy Hacking Keyboard for Mac
  acer_c300       Acer C300
  acer_ferrari4k  Acer Ferrari 4000
  acer_laptop     Acer Laptop
  asus_laptop     Asus Laptop
  apple           Apple
  apple_laptop    Apple Laptop
  applealu_ansi   Apple Aluminium Keyboard (ANSI)
  applealu_iso    Apple Aluminium Keyboard (ISO)
  applealu_jis    Apple Aluminium Keyboard (JIS)
  silvercrest     SILVERCREST Multimedia Wireless Keyboard
  emachines       Laptop/notebook eMachines m68xx
  benqx           BenQ X-Touch
  benqx730        BenQ X-Touch 730
  benqx800        BenQ X-Touch 800
  hhk             Happy Hacking Keyboard
  classmate       Classmate PC
  olpc            OLPC
  sun_type7_usb   Sun Type 7 USB
  sun_type7_euro_usb Sun Type 7 USB (European layout)
  sun_type7_unix_usb Sun Type 7 USB (Unix layout)
  sun_type7_jp_usb Sun Type 7 USB (Japanese layout) / Japanese 106-key
  sun_type6_usb   Sun Type 6/7 USB
  sun_type6_euro_usb Sun Type 6/7 USB (European layout)
  sun_type6_unix_usb Sun Type 6 USB (Unix layout)
  sun_type6_jp_usb Sun Type 6 USB (Japanese layout)
  sun_type6_jp    Sun Type 6 (Japanese layout)
  targa_v811      Targa Visionary 811
  unitekkb1925    Unitek KB-1925
  compalfl90      FL90
  creativedw7000  Creative Desktop Wireless 7000
  htcdream        Htc Dream phone

! layout
  us              English (US)
  af              Afghani
  ara             Arabic
  al              Albanian
  am              Armenian
  at              German (Austria)
  az              Azerbaijani
  by              Belarusian
  be              Belgian
  bd              Bangla
  in              Indian
  ba              Bosnian
  br              Portuguese (Brazil)
  bg              Bulgarian
  ma              Arabic (Morocco)
  cm              English (Cameroon)
  mm              Burmese
  ca              French (Canada)
  cd              French (Democratic Republic of the Congo)
  cn              Chinese
  hr              Croatian
  cz              Czech
  dk              Danish
  nl              Dutch
  bt              Dzongkha
  ee              Estonian
  ir              Persian
  iq              Iraqi
  fo              Faroese
  fi              Finnish
  fr              French
  gh              English (Ghana)
  gn              French (Guinea)
  ge              Georgian
  de              German
  gr              Greek
  hu              Hungarian
  is              Icelandic
  il              Hebrew
  it              Italian
  jp              Japanese
  kg              Kyrgyz
  kh              Khmer (Cambodia)
  kz              Kazakh
  la              Lao
  latam           Spanish (Latin American)
  lt              Lithuanian
  lv              Latvian
  mao             Maori
  me              Montenegrin
  mk              Macedonian
  mt              Maltese
  mn              Mongolian
  no              Norwegian
  pl              Polish
  pt              Portuguese
  ro              Romanian
  ru              Russian
  rs              Serbian
  si              Slovenian
  sk              Slovak
  es              Spanish
  se              Swedish
  ch              German (Switzerland)
  sy              Arabic (Syria)
  tj              Tajik
  lk              Sinhala (phonetic)
  th              Thai
  tr              Turkish
  tw              Taiwanese
  ua              Ukrainian
  gb              English (UK)
  uz              Uzbek
  vn              Vietnamese
  kr              Korean
  nec_vndr/jp     Japanese (PC-98xx Series)
  ie              Irish
  pk              Urdu (Pakistan)
  mv              Dhivehi
  za              English (South Africa)
  epo             Esperanto
  np              Nepali
  ng              English (Nigeria)
  et              Amharic
  sn              Wolof
  brai            Braille
  tm              Turkmen
  ml              Bambara
  tz              Swahili (Tanzania)
  ke              Swahili (Kenya)
  bw              Tswana
  ph              Filipino
  md              Moldavian

! variant
  chr             us: Cherokee
  euro            us: English (US, with euro on 5)
  intl            us: English (US, international with dead keys)
  brz		  us: English (US, intl, for pt-br) 
  alt-intl        us: English (US, alternative international)
  colemak         us: English (Colemak)
  dvorak          us: English (Dvorak)
  dvorak-intl     us: English (Dvorak, international with dead keys)
  dvorak-alt-intl us: English (Dvorak alternative international no dead keys)
  dvorak-l        us: English (left handed Dvorak)
  dvorak-r        us: English (right handed Dvorak)
  dvorak-classic  us: English (classic Dvorak)
  dvp             us: English (programmer Dvorak)
  rus             us: Russian (US, phonetic)
  mac             us: English (Macintosh)
  altgr-intl      us: English (international AltGr dead keys)
  olpc2           us: English (the divide/multiply keys toggle the layout)
  hbs             us: Serbo-Croatian (US)
  workman         us: English (Workman)
  workman-intl    us: English (Workman, international with dead keys)
  ps              af: Pashto
  uz              af: Uzbek (Afghanistan)
  olpc-ps         af: Pashto (Afghanistan, OLPC)
  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
  uz-olpc         af: Uzbek (Afghanistan, OLPC)
  azerty          ara: Arabic (azerty)
  azerty_digits   ara: Arabic (azerty/digits)
  digits          ara: Arabic (digits)
  qwerty          ara: Arabic (qwerty)
  qwerty_digits   ara: Arabic (qwerty/digits)
  buckwalter      ara: Arabic (Buckwalter)
  plisi-d1        al: Albanian (Plisi D1)
  phonetic        am: Armenian (phonetic)
  phonetic-alt    am: Armenian (alternative phonetic)
  eastern         am: Armenian (eastern)
  western         am: Armenian (western)
  eastern-alt     am: Armenian (alternative eastern)
  nodeadkeys      at: German (Austria, eliminate dead keys)
  sundeadkeys     at: German (Austria, Sun dead keys)
  mac             at: German (Austria, Macintosh)
  cyrillic        az: Azerbaijani (Cyrillic)
  legacy          by: Belarusian (legacy)
  latin           by: Belarusian (Latin)
  oss             be: Belgian (alternative)
  oss_latin9      be: Belgian (alternative, Latin-9 only)
  oss_sundeadkeys be: Belgian (alternative, Sun dead keys)
  iso-alternate   be: Belgian (ISO alternate)
  nodeadkeys      be: Belgian (eliminate dead keys)
  sundeadkeys     be: Belgian (Sun dead keys)
  wang            be: Belgian (Wang model 724 azerty)
  probhat         bd: Bangla (Probhat)
  ben             in: Bangla (India)
  ben_probhat     in: Bangla (India, Probhat)
  ben_baishakhi   in: Bangla (India, Baishakhi)
  ben_bornona     in: Bangla (India, Bornona)
  ben_gitanjali   in: Bangla (India, Uni Gitanjali)
  ben_inscript    in: Bangla (India, Baishakhi Inscript)
  eeyek           in: Manipuri (Eeyek)
  guj             in: Gujarati
  guru            in: Punjabi (Gurmukhi)
  jhelum          in: Punjabi (Gurmukhi Jhelum)
  kan             in: Kannada
  kan-kagapa      in: Kannada (KaGaPa phonetic)
  mal             in: Malayalam
  mal_lalitha     in: Malayalam (Lalitha)
  mal_enhanced    in: Malayalam (enhanced Inscript, with rupee sign)
  ori             in: Oriya
  tam_unicode     in: Tamil (Unicode)
  tam_keyboard_with_numerals in: Tamil (keyboard with numerals)
  tam_TAB         in: Tamil (TAB typewriter)
  tam_TSCII       in: Tamil (TSCII typewriter)
  tam             in: Tamil
  tel             in: Telugu
  tel-kagapa      in: Telugu (KaGaPa phonetic)
  urd-phonetic    in: Urdu (phonetic)
  urd-phonetic3   in: Urdu (alternative phonetic)
  urd-winkeys     in: Urdu (WinKeys)
  bolnagri        in: Hindi (Bolnagri)
  hin-wx          in: Hindi (Wx)
  hin-kagapa      in: Hindi (KaGaPa phonetic)
  san-kagapa      in: Sanskrit (KaGaPa phonetic)
  mar-kagapa      in: Marathi (KaGaPa phonetic)
  eng             in: English (India, with rupee sign)
  alternatequotes ba: Bosnian (with guillemets for quotes)
  unicode         ba: Bosnian (with Bosnian digraphs)
  unicodeus       ba: Bosnian (US keyboard with Bosnian digraphs)
  us              ba: Bosnian (US keyboard with Bosnian letters)
  nodeadkeys      br: Portuguese (Brazil, eliminate dead keys)
  dvorak          br: Portuguese (Brazil, Dvorak)
  nativo          br: Portuguese (Brazil, Nativo)
  nativo-us       br: Portuguese (Brazil, Nativo for US keyboards)
  nativo-epo      br: Esperanto (Brazil, Nativo)
  phonetic        bg: Bulgarian (traditional phonetic)
  bas_phonetic    bg: Bulgarian (new phonetic)
  french          ma: French (Morocco)
  tifinagh        ma: Berber (Morocco, Tifinagh)
  tifinagh-alt    ma: Berber (Morocco, Tifinagh alternative)
  tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alternative phonetic)
  tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
  tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
  tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
  french          cm: French (Cameroon)
  qwerty          cm: Cameroon Multilingual (qwerty)
  azerty          cm: Cameroon Multilingual (azerty)
  dvorak          cm: Cameroon Multilingual (Dvorak)
  fr-dvorak       ca: French (Canada, Dvorak)
  fr-legacy       ca: French (Canada, legacy)
  multix          ca: Canadian Multilingual
  multi           ca: Canadian Multilingual (first part)
  multi-2gr       ca: Canadian Multilingual (second part)
  ike             ca: Inuktitut
  eng             ca: English (Canada)
  tib             cn: Tibetan
  tib_asciinum    cn: Tibetan (with ASCII numerals)
  ug              cn: Uyghur
  alternatequotes hr: Croatian (with guillemets for quotes)
  unicode         hr: Croatian (with Croatian digraphs)
  unicodeus       hr: Croatian (US keyboard with Croatian digraphs)
  us              hr: Croatian (US keyboard with Croatian letters)
  bksl            cz: Czech (with &lt;\|&gt; key)
  qwerty          cz: Czech (qwerty)
  qwerty_bksl     cz: Czech (qwerty, extended Backslash)
  ucw             cz: Czech (UCW layout, accented letters only)
  dvorak-ucw      cz: Czech (US Dvorak with CZ UCW support)
  nodeadkeys      dk: Danish (eliminate dead keys)
  winkeys         dk: Danish (Winkeys)
  mac             dk: Danish (Macintosh)
  mac_nodeadkeys  dk: Danish (Macintosh, eliminate dead keys)
  dvorak          dk: Danish (Dvorak)
  sundeadkeys     nl: Dutch (Sun dead keys)
  mac             nl: Dutch (Macintosh)
  std             nl: Dutch (standard)
  nodeadkeys      ee: Estonian (eliminate dead keys)
  dvorak          ee: Estonian (Dvorak)
  us              ee: Estonian (US keyboard with Estonian letters)
  pes_keypad      ir: Persian (with Persian keypad)
  ku              ir: Kurdish (Iran, Latin Q)
  ku_f            ir: Kurdish (Iran, F)
  ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
  ku_ara          ir: Kurdish (Iran, Arabic-Latin)
  ku              iq: Kurdish (Iraq, Latin Q)
  ku_f            iq: Kurdish (Iraq, F)
  ku_alt          iq: Kurdish (Iraq, Latin Alt-Q)
  ku_ara          iq: Kurdish (Iraq, Arabic-Latin)
  nodeadkeys      fo: Faroese (eliminate dead keys)
  classic         fi: Finnish (classic)
  nodeadkeys      fi: Finnish (classic, eliminate dead keys)
  winkeys         fi: Finnish (Winkeys)
  smi             fi: Northern Saami (Finland)
  mac             fi: Finnish (Macintosh)
  nodeadkeys      fr: French (eliminate dead keys)
  sundeadkeys     fr: French (Sun dead keys)
  oss             fr: French (alternative)
  oss_latin9      fr: French (alternative, Latin-9 only)
  oss_nodeadkeys  fr: French (alternative, eliminate dead keys)
  oss_sundeadkeys fr: French (alternative, Sun dead keys)
  latin9          fr: French (legacy, alternative)
  latin9_nodeadkeys fr: French (legacy, alternative, eliminate dead keys)
  latin9_sundeadkeys fr: French (legacy, alternative, Sun dead keys)
  bepo            fr: French (Bepo, ergonomic, Dvorak way)
  bepo_latin9     fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
  dvorak          fr: French (Dvorak)
  mac             fr: French (Macintosh)
  bre             fr: French (Breton)
  oci             fr: Occitan
  geo             fr: Georgian (France, AZERTY Tskapo)
  generic         gh: English (Ghana, multilingual)
  akan            gh: Akan
  ewe             gh: Ewe
  fula            gh: Fula
  ga              gh: Ga
  hausa           gh: Hausa
  avn             gh: Avatime
  gillbt          gh: English (Ghana, GILLBT)
  ergonomic       ge: Georgian (ergonomic)
  mess            ge: Georgian (MESS)
  ru              ge: Russian (Georgia)
  os              ge: Ossetian (Georgia)
  deadacute       de: German (dead acute)
  deadgraveacute  de: German (dead grave acute)
  nodeadkeys      de: German (eliminate dead keys)
  T3              de: German (T3)
  ro              de: Romanian (Germany)
  ro_nodeadkeys   de: Romanian (Germany, eliminate dead keys)
  dvorak          de: German (Dvorak)
  sundeadkeys     de: German (Sun dead keys)
  neo             de: German (Neo 2)
  mac             de: German (Macintosh)
  mac_nodeadkeys  de: German (Macintosh, eliminate dead keys)
  dsb             de: Lower Sorbian
  dsb_qwertz      de: Lower Sorbian (qwertz)
  qwerty          de: German (qwerty)
  tr              de: Turkish (Germany)
  ru              de: Russian (Germany, phonetic)
  legacy          de: German (legacy)
  simple          gr: Greek (simple)
  extended        gr: Greek (extended)
  nodeadkeys      gr: Greek (eliminate dead keys)
  polytonic       gr: Greek (polytonic)
  standard        hu: Hungarian (standard)
  nodeadkeys      hu: Hungarian (eliminate dead keys)
  qwerty          hu: Hungarian (qwerty)
  101_qwertz_comma_dead hu: Hungarian (101/qwertz/comma/dead keys)
  101_qwertz_comma_nodead hu: Hungarian (101/qwertz/comma/eliminate dead keys)
  101_qwertz_dot_dead hu: Hungarian (101/qwertz/dot/dead keys)
  101_qwertz_dot_nodead hu: Hungarian (101/qwertz/dot/eliminate dead keys)
  101_qwerty_comma_dead hu: Hungarian (101/qwerty/comma/dead keys)
  101_qwerty_comma_nodead hu: Hungarian (101/qwerty/comma/eliminate dead keys)
  101_qwerty_dot_dead hu: Hungarian (101/qwerty/dot/dead keys)
  101_qwerty_dot_nodead hu: Hungarian (101/qwerty/dot/eliminate dead keys)
  102_qwertz_comma_dead hu: Hungarian (102/qwertz/comma/dead keys)
  102_qwertz_comma_nodead hu: Hungarian (102/qwertz/comma/eliminate dead keys)
  102_qwertz_dot_dead hu: Hungarian (102/qwertz/dot/dead keys)
  102_qwertz_dot_nodead hu: Hungarian (102/qwertz/dot/eliminate dead keys)
  102_qwerty_comma_dead hu: Hungarian (102/qwerty/comma/dead keys)
  102_qwerty_comma_nodead hu: Hungarian (102/qwerty/comma/eliminate dead keys)
  102_qwerty_dot_dead hu: Hungarian (102/qwerty/dot/dead keys)
  102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys)
  Sundeadkeys     is: Icelandic (Sun dead keys)
  nodeadkeys      is: Icelandic (eliminate dead keys)
  mac             is: Icelandic (Macintosh)
  dvorak          is: Icelandic (Dvorak)
  lyx             il: Hebrew (lyx)
  phonetic        il: Hebrew (phonetic)
  biblical        il: Hebrew (Biblical, Tiro)
  nodeadkeys      it: Italian (eliminate dead keys)
  winkeys         it: Italian (Winkeys)
  mac             it: Italian (Macintosh)
  us              it: Italian (US keyboard with Italian letters)
  geo             it: Georgian (Italy)
  ibm             it: Italian (IBM 142)
  kana            jp: Japanese (Kana)
  kana86          jp: Japanese (Kana 86)
  OADG109A        jp: Japanese (OADG 109A)
  mac             jp: Japanese (Macintosh)
  dvorak          jp: Japanese (Dvorak)
  phonetic        kg: Kyrgyz (phonetic)
  ruskaz          kz: Russian (Kazakhstan, with Kazakh)
  kazrus          kz: Kazakh (with Russian)
  stea            la: Lao (STEA proposed standard layout)
  nodeadkeys      latam: Spanish (Latin American, eliminate dead keys)
  deadtilde       latam: Spanish (Latin American, include dead tilde)
  sundeadkeys     latam: Spanish (Latin American, Sun dead keys)
  std             lt: Lithuanian (standard)
  us              lt: Lithuanian (US keyboard with Lithuanian letters)
  ibm             lt: Lithuanian (IBM LST 1205-92)
  lekp            lt: Lithuanian (LEKP)
  lekpa           lt: Lithuanian (LEKPa)
  apostrophe      lv: Latvian (apostrophe variant)
  tilde           lv: Latvian (tilde variant)
  fkey            lv: Latvian (F variant)
  modern          lv: Latvian (modern)
  ergonomic       lv: Latvian (ergonomic, ŪGJRMV)
  adapted         lv: Latvian (adapted)
  cyrillic        me: Montenegrin (Cyrillic)
  cyrillicyz      me: Montenegrin (Cyrillic, ZE and ZHE swapped)
  latinunicode    me: Montenegrin (Latin Unicode)
  latinyz         me: Montenegrin (Latin qwerty)
  latinunicodeyz  me: Montenegrin (Latin Unicode qwerty)
  cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
  latinalternatequotes me: Montenegrin (Latin with guillemets)
  nodeadkeys      mk: Macedonian (eliminate dead keys)
  us              mt: Maltese (with US layout)
  nodeadkeys      no: Norwegian (eliminate dead keys)
  winkeys         no: Norwegian (Winkeys)
  dvorak          no: Norwegian (Dvorak)
  smi             no: Northern Saami (Norway)
  smi_nodeadkeys  no: Northern Saami (Norway, eliminate dead keys)
  mac             no: Norwegian (Macintosh)
  mac_nodeadkeys  no: Norwegian (Macintosh, eliminate dead keys)
  colemak         no: Norwegian (Colemak)
  legacy          pl: Polish (legacy)
  qwertz          pl: Polish (qwertz)
  dvorak          pl: Polish (Dvorak)
  dvorak_quotes   pl: Polish (Dvorak, Polish quotes on quotemark key)
  dvorak_altquotes pl: Polish (Dvorak, Polish quotes on key 1)
  csb             pl: Kashubian
  szl             pl: Silesian
  ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
  dvp             pl: Polish (programmer Dvorak)
  nodeadkeys      pt: Portuguese (eliminate dead keys)
  sundeadkeys     pt: Portuguese (Sun dead keys)
  mac             pt: Portuguese (Macintosh)
  mac_nodeadkeys  pt: Portuguese (Macintosh, eliminate dead keys)
  mac_sundeadkeys pt: Portuguese (Macintosh, Sun dead keys)
  nativo          pt: Portuguese (Nativo)
  nativo-us       pt: Portuguese (Nativo for US keyboards)
  nativo-epo      pt: Esperanto (Portugal, Nativo)
  cedilla         ro: Romanian (cedilla)
  std             ro: Romanian (standard)
  std_cedilla     ro: Romanian (standard cedilla)
  winkeys         ro: Romanian (WinKeys)
  phonetic        ru: Russian (phonetic)
  phonetic_winkeys ru: Russian (phonetic WinKeys)
  typewriter      ru: Russian (typewriter)
  legacy          ru: Russian (legacy)
  typewriter-legacy ru: Russian (typewriter, legacy)
  tt              ru: Tatar
  os_legacy       ru: Ossetian (legacy)
  os_winkeys      ru: Ossetian (WinKeys)
  cv              ru: Chuvash
  cv_latin        ru: Chuvash (Latin)
  udm             ru: Udmurt
  kom             ru: Komi
  sah             ru: Yakut
  xal             ru: Kalmyk
  dos             ru: Russian (DOS)
  mac             ru: Russian (Macintosh)
  srp             ru: Serbian (Russia)
  bak             ru: Bashkirian
  chm             ru: Mari
  yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
  latin           rs: Serbian (Latin)
  latinunicode    rs: Serbian (Latin Unicode)
  latinyz         rs: Serbian (Latin qwerty)
  latinunicodeyz  rs: Serbian (Latin Unicode qwerty)
  alternatequotes rs: Serbian (Cyrillic with guillemets)
  latinalternatequotes rs: Serbian (Latin with guillemets)
  rue             rs: Pannonian Rusyn
  alternatequotes si: Slovenian (with guillemets for quotes)
  us              si: Slovenian (US keyboard with Slovenian letters)
  bksl            sk: Slovak (extended Backslash)
  qwerty          sk: Slovak (qwerty)
  qwerty_bksl     sk: Slovak (qwerty, extended Backslash)
  nodeadkeys      es: Spanish (eliminate dead keys)
  winkeys         es: Spanish (Winkeys)
  deadtilde       es: Spanish (include dead tilde)
  sundeadkeys     es: Spanish (Sun dead keys)
  dvorak          es: Spanish (Dvorak)
  ast             es: Asturian (Spain, with bottom-dot H and bottom-dot L)
  cat             es: Catalan (Spain, with middle-dot L)
  mac             es: Spanish (Macintosh)
  nodeadkeys      se: Swedish (eliminate dead keys)
  dvorak          se: Swedish (Dvorak)
  rus             se: Russian (Sweden, phonetic)
  rus_nodeadkeys  se: Russian (Sweden, phonetic, eliminate dead keys)
  smi             se: Northern Saami (Sweden)
  mac             se: Swedish (Macintosh)
  svdvorak        se: Swedish (Svdvorak)
  swl             se: Swedish Sign Language
  legacy          ch: German (Switzerland, legacy)
  de_nodeadkeys   ch: German (Switzerland, eliminate dead keys)
  de_sundeadkeys  ch: German (Switzerland, Sun dead keys)
  fr              ch: French (Switzerland)
  fr_nodeadkeys   ch: French (Switzerland, eliminate dead keys)
  fr_sundeadkeys  ch: French (Switzerland, Sun dead keys)
  fr_mac          ch: French (Switzerland, Macintosh)
  de_mac          ch: German (Switzerland, Macintosh)
  syc             sy: Syriac
  syc_phonetic    sy: Syriac (phonetic)
  ku              sy: Kurdish (Syria, Latin Q)
  ku_f            sy: Kurdish (Syria, F)
  ku_alt          sy: Kurdish (Syria, Latin Alt-Q)
  legacy          tj: Tajik (legacy)
  tam_unicode     lk: Tamil (Sri Lanka, Unicode)
  tam_TAB         lk: Tamil (Sri Lanka, TAB Typewriter)
  tis             th: Thai (TIS-820.2538)
  pat             th: Thai (Pattachote)
  f               tr: Turkish (F)
  alt             tr: Turkish (Alt-Q)
  sundeadkeys     tr: Turkish (Sun dead keys)
  ku              tr: Kurdish (Turkey, Latin Q)
  ku_f            tr: Kurdish (Turkey, F)
  ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
  intl            tr: Turkish (international with dead keys)
  crh             tr: Crimean Tatar (Turkish Q)
  crh_f           tr: Crimean Tatar (Turkish F)
  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
  indigenous      tw: Taiwanese (indigenous)
  saisiyat        tw: Saisiyat (Taiwan)
  phonetic        ua: Ukrainian (phonetic)
  typewriter      ua: Ukrainian (typewriter)
  winkeys         ua: Ukrainian (WinKeys)
  legacy          ua: Ukrainian (legacy)
  rstu            ua: Ukrainian (standard RSTU)
  rstu_ru         ua: Russian (Ukraine, standard RSTU)
  homophonic      ua: Ukrainian (homophonic)
  extd            gb: English (UK, extended WinKeys)
  intl            gb: English (UK, international with dead keys)
  dvorak          gb: English (UK, Dvorak)
  dvorakukp       gb: English (UK, Dvorak with UK punctuation)
  mac             gb: English (UK, Macintosh)
  mac_intl        gb: English (UK, Macintosh international)
  colemak         gb: English (UK, Colemak)
  latin           uz: Uzbek (Latin)
  kr104           kr: Korean (101/104 key compatible)
  CloGaelach      ie: CloGaelach
  UnicodeExpert   ie: Irish (UnicodeExpert)
  ogam            ie: Ogham
  ogam_is434      ie: Ogham (IS434)
  urd-crulp       pk: Urdu (Pakistan, CRULP)
  urd-nla         pk: Urdu (Pakistan, NLA)
  ara             pk: Arabic (Pakistan)
  snd             pk: Sindhi
  legacy          epo: Esperanto (displaced semicolon and quote, obsolete)
  igbo            ng: Igbo
  yoruba          ng: Yoruba
  hausa           ng: Hausa
  left_hand       brai: Braille (left hand)
  right_hand      brai: Braille (right hand)
  alt             tm: Turkmen (Alt-Q)
  fr-oss          ml: French (Mali, alternative)
  us-mac          ml: English (Mali, US Macintosh)
  us-intl         ml: English (Mali, US international)
  kik             ke: Kikuyu
  qwerty-bay      ph: Filipino (QWERTY Baybayin)
  capewell-dvorak ph: Filipino (Capewell-Dvorak Latin)
  capewell-dvorak-bay ph: Filipino (Capewell-Dvorak Baybayin)
  capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006 Latin)
  capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006 Baybayin)
  colemak         ph: Filipino (Colemak Latin)
  colemak-bay     ph: Filipino (Colemak Baybayin)
  dvorak          ph: Filipino (Dvorak Latin)
  dvorak-bay      ph: Filipino (Dvorak Baybayin)
  gag             md: Moldavian (Gagauz)

! option
  grp                  Switching to another layout
  grp:switch           Right Alt (while pressed)
  grp:lswitch          Left Alt (while pressed)
  grp:lwin_switch      Left Win (while pressed)
  grp:rwin_switch      Right Win (while pressed)
  grp:win_switch       Any Win key (while pressed)
  grp:caps_switch      Caps Lock (while pressed), Alt+Caps Lock does the original capslock action
  grp:rctrl_switch     Right Ctrl (while pressed)
  grp:toggle           Right Alt
  grp:lalt_toggle      Left Alt
  grp:caps_toggle      Caps Lock
  grp:shift_caps_toggle Shift+Caps Lock
  grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout)
  grp:win_menu_switch  Left Win (to first layout), Right Win/Menu (to last layout)
  grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout)
  grp:alt_caps_toggle  Alt+Caps Lock
  grp:shifts_toggle    Both Shift keys together
  grp:alts_toggle      Both Alt keys together
  grp:ctrls_toggle     Both Ctrl keys together
  grp:ctrl_shift_toggle Ctrl+Shift
  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
  grp:rctrl_rshift_toggle Right Ctrl+Right Shift
  grp:ctrl_alt_toggle  Alt+Ctrl
  grp:alt_shift_toggle Alt+Shift
  grp:lalt_lshift_toggle Left Alt+Left Shift
  grp:alt_space_toggle Alt+Space
  grp:menu_toggle      Menu
  grp:lwin_toggle      Left Win
  grp:win_space_toggle Win Key+Space
  grp:rwin_toggle      Right Win
  grp:lshift_toggle    Left Shift
  grp:rshift_toggle    Right Shift
  grp:lctrl_toggle     Left Ctrl
  grp:rctrl_toggle     Right Ctrl
  grp:sclk_toggle      Scroll Lock
  grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
  lv3                  Key to choose 3rd level
  lv3:switch           Right Ctrl
  lv3:menu_switch      Menu
  lv3:win_switch       Any Win key
  lv3:lwin_switch      Left Win
  lv3:rwin_switch      Right Win
  lv3:alt_switch       Any Alt key
  lv3:lalt_switch      Left Alt
  lv3:ralt_switch      Right Alt
  lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose
  lv3:ralt_alt         Right Alt key never chooses 3rd level
  lv3:enter_switch     Enter on keypad
  lv3:caps_switch      Caps Lock
  lv3:bksl_switch      Backslash
  lv3:lsgt_switch      &lt;Less/Greater&gt;
  lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  lv3:lsgt_switch_latch &lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  ctrl                 Ctrl key position
  ctrl:nocaps          Caps Lock as Ctrl
  ctrl:lctrl_meta      Left Ctrl as Meta
  ctrl:swapcaps        Swap Ctrl and Caps Lock
  ctrl:ac_ctrl         At left of 'A'
  ctrl:aa_ctrl         At bottom left
  ctrl:rctrl_ralt      Right Ctrl as Right Alt
  ctrl:menu_rctrl      Menu as Right Ctrl
  ctrl:ctrl_ralt       Right Alt as Right Ctrl
  ctrl:swap_lalt_lctl  Swap Left Alt key with Left Ctrl key
  ctrl:swap_lwin_lctl  Swap Left Win key with Left Ctrl key
  ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt
  grp_led              Use keyboard LED to show alternative layout
  grp_led:num          Num Lock
  grp_led:caps         Caps Lock
  grp_led:scroll       Scroll Lock
  keypad               Layout of numeric keypad
  keypad:legacy        Legacy
  keypad:oss           Unicode additions (arrows and math operators)
  keypad:future        Unicode additions (arrows and math operators; math operators on default level)
  keypad:legacy_wang   Legacy Wang 724
  keypad:oss_wang      Wang 724 keypad with Unicode additions (arrows and math operators)
  keypad:future_wang   Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
  keypad:hex           Hexadecimal
  keypad:atm           ATM/phone-style
  kpdl                 Numeric keypad delete key behaviour
  kpdl:dot             Legacy key with dot
  kpdl:comma           Legacy key with comma
  kpdl:dotoss          Four-level key with dot
  kpdl:dotoss_latin9   Four-level key with dot, Latin-9 only
  kpdl:commaoss        Four-level key with comma
  kpdl:momayyezoss     Four-level key with momayyez
  kpdl:kposs           Four-level key with abstract separators
  kpdl:semi            Semicolon on third level
  caps                 Caps Lock key behavior
  caps:internal        Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
  caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
  caps:shift           Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
  caps:shift_nocancel  Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
  caps:capslock        Caps Lock toggles normal capitalization of alphabetic characters
  caps:numlock         Make Caps Lock an additional Num Lock
  caps:swapescape      Swap ESC and Caps Lock
  caps:escape          Make Caps Lock an additional ESC
  caps:backspace       Make Caps Lock an additional Backspace
  caps:super           Make Caps Lock an additional Super
  caps:hyper           Make Caps Lock an additional Hyper
  caps:shiftlock       Caps Lock toggles ShiftLock (affects all keys)
  caps:none            Caps Lock is disabled
  caps:ctrl_modifier   Make Caps Lock an additional Ctrl
  altwin               Alt/Win key behavior
  altwin:menu          Add the standard behavior to Menu key
  altwin:meta_alt      Alt and Meta are on Alt keys
  altwin:alt_win       Alt is mapped to Win keys (and the usual Alt keys)
  altwin:ctrl_win      Ctrl is mapped to Win keys (and the usual Ctrl keys)
  altwin:ctrl_alt_win  Ctrl is mapped to Alt keys, Alt is mapped to Win keys
  altwin:meta_win      Meta is mapped to Win keys
  altwin:left_meta_win Meta is mapped to Left Win
  altwin:hyper_win     Hyper is mapped to Win keys
  altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
  altwin:swap_alt_win  Alt is swapped with Win
  Compose key          Position of Compose key
  compose:ralt         Right Alt
  compose:lwin         Left Win
  compose:lwin-altgr   3rd level of Left Win
  compose:rwin         Right Win
  compose:rwin-altgr   3rd level of Right Win
  compose:menu         Menu
  compose:menu-altgr   3rd level of Menu
  compose:lctrl        Left Ctrl
  compose:lctrl-altgr  3rd level of Left Ctrl
  compose:rctrl        Right Ctrl
  compose:rctrl-altgr  3rd level of Right Ctrl
  compose:caps         Caps Lock
  compose:caps-altgr   3rd level of Caps Lock
  compose:102          &lt;Less/Greater&gt;
  compose:102-altgr    3rd level of &lt;Less/Greater&gt;
  compose:paus         Pause
  compose:prsc         PrtSc
  compose:sclk         Scroll Lock
  compat               Miscellaneous compatibility options
  numpad:pc            Default numeric keypad keys
  numpad:mac           Numeric keypad keys always enter digits (as in Mac OS)
  numpad:microsoft     Shift with numeric keypad keys works as in MS Windows
  numpad:shift3        Shift does not cancel Num Lock, chooses 3rd level instead
  srvrkeys:none        Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
  apple:alupckeys      Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)
  shift:breaks_caps    Shift cancels Caps Lock
  misc:typo            Enable extra typographic characters
  shift:both_capslock  Both Shift keys together toggle Caps Lock
  shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
  shift:both_shiftlock Both Shift keys together toggle ShiftLock
  keypad:pointerkeys   Shift + NumLock toggles PointerKeys
  grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
  grab:debug           Allow grab and window tree logging
  currencysign         Adding currency signs to certain keys
  eurosign:e           Euro on E
  eurosign:2           Euro on 2
  eurosign:4           Euro on 4
  eurosign:5           Euro on 5
  rupeesign:4          Rupee on 4
  lv5                  Key to choose 5th level
  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:ralt_switch_lock Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser
  nbsp                 Using space key to input non-breakable space character
  nbsp:none            Usual space at any level
  nbsp:level2          Non-breakable space character at second level
  nbsp:level3          Non-breakable space character at third level
  nbsp:level3s         Non-breakable space character at third level, nothing at fourth level
  nbsp:level3n         Non-breakable space character at third level, thin non-breakable space character at fourth level
  nbsp:level4          Non-breakable space character at fourth level
  nbsp:level4n         Non-breakable space character at fourth level, thin non-breakable space character at sixth level
  nbsp:level4nl        Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
  nbsp:zwnj2           Zero-width non-joiner character at second level
  nbsp:zwnj2zwj3       Zero-width non-joiner character at second level, zero-width joiner character at third level
  nbsp:zwnj2zwj3nb4    Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level
  nbsp:zwnj2nb3        Zero-width non-joiner character at second level, non-breakable space character at third level
  nbsp:zwnj2nb3s       Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level
  nbsp:zwnj2nb3zwj4    Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level
  nbsp:zwnj2nb3nnb4    Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level
  nbsp:zwnj3zwj4       Zero-width non-joiner character at third level, zero-width joiner at fourth level
  japan                Japanese keyboard options
  japan:kana_lock      Kana Lock key is locking
  japan:nicola_f_bs    NICOLA-F style Backspace
  japan:hztg_escape    Make Zenkaku Hankaku an additional ESC
  esperanto            Adding Esperanto supersigned letters
  esperanto:qwerty     To the corresponding key in a Qwerty layout
  esperanto:dvorak     To the corresponding key in a Dvorak layout
  esperanto:colemak    To the corresponding key in a Colemak layout
  solaris              Maintain key compatibility with old Solaris keycodes
  solaris:sun_compat   Sun Key compatibility
  terminate            Key sequence to kill the X server
  terminate:ctrl_alt_bksp Ctrl + Alt + Backspace
! model
  pc101           Generic 101-key PC
  pc102           Generic 102-key (Intl) PC
  pc104           Generic 104-key PC
  pc105           Generic 105-key (Intl) PC
  dell101         Dell 101-key PC
  latitude        Dell Latitude series laptop
  dellm65         Dell Precision M65
  everex          Everex STEPnote
  flexpro         Keytronic FlexPro
  microsoft       Microsoft Natural
  omnikey101      Northgate OmniKey 101
  winbook         Winbook Model XP5
  pc98            PC-98xx Series
  a4techKB21      A4Tech KB-21
  a4techKBS8      A4Tech KBS-8
  a4_rfkb23       A4Tech Wireless Desktop RFKB-23
  airkey          Acer AirKey V
  azonaRF2300     Azona RF2300 wireless Internet Keyboard
  scorpius        Advance Scorpius KI
  brother         Brother Internet Keyboard
  btc5113rf       BTC 5113RF Multimedia
  btc5126t        BTC 5126T
  btc6301urf      BTC 6301URF
  btc9000         BTC 9000
  btc9000a        BTC 9000A
  btc9001ah       BTC 9001AH
  btc5090         BTC 5090
  btc9019u        BTC 9019U
  btc9116u        BTC 9116U Mini Wireless Internet and Gaming
  cherryblue      Cherry Blue Line CyBo@rd
  cherryblueb     Cherry CyMotion Master XPress
  cherrybluea     Cherry Blue Line CyBo@rd (alternate option)
  cherrycyboard   Cherry CyBo@rd USB-Hub
  cherrycmexpert  Cherry CyMotion Expert
  cherrybunlim    Cherry B.UNLIMITED
  chicony         Chicony Internet Keyboard
  chicony0108     Chicony KU-0108
  chicony0420     Chicony KU-0420
  chicony9885     Chicony KB-9885
  compaqeak8      Compaq Easy Access Keyboard
  compaqik7       Compaq Internet Keyboard (7 keys)
  compaqik13      Compaq Internet Keyboard (13 keys)
  compaqik18      Compaq Internet Keyboard (18 keys)
  cymotionlinux   Cherry CyMotion Master Linux
  armada          Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
  presario        Laptop/notebook Compaq (eg. Presario) Internet Keyboard
  ipaq            Compaq iPaq Keyboard
  dell            Dell
  dellsk8125      Dell SK-8125
  dellsk8135      Dell SK-8135
  dellusbmm       Dell USB Multimedia Keyboard
  inspiron        Dell Laptop/notebook Inspiron 6xxx/8xxx
  precision_m     Dell Laptop/notebook Precision M series
  dexxa           Dexxa Wireless Desktop Keyboard
  diamond         Diamond 9801 / 9802 series
  dtk2000         DTK2000
  ennyah_dkb1008  Ennyah DKB-1008
  fscaa1667g      Fujitsu-Siemens Computers AMILO laptop
  genius          Genius Comfy KB-16M / Genius MM Keyboard KWD-910
  geniuscomfy     Genius Comfy KB-12e
  geniuscomfy2    Genius Comfy KB-21e-Scroll
  geniuskb19e     Genius KB-19e NB
  geniuskkb2050hs Genius KKB-2050HS
  gyration        Gyration
  htcdream        HTC Dream
  kinesis         Kinesis
  logitech_base   Logitech Generic Keyboard
  logitech_g15    Logitech G15 extra keys via G15daemon
  hpi6            Hewlett-Packard Internet Keyboard
  hp250x          Hewlett-Packard SK-250x Multimedia Keyboard
  hpxe3gc         Hewlett-Packard Omnibook XE3 GC
  hpxe3gf         Hewlett-Packard Omnibook XE3 GF
  hpxt1000        Hewlett-Packard Omnibook XT1000
  hpdv5           Hewlett-Packard Pavilion dv5
  hpzt11xx        Hewlett-Packard Pavilion ZT11xx
  hp500fa         Hewlett-Packard Omnibook 500 FA
  hp5xx           Hewlett-Packard Omnibook 5xx
  hpnx9020        Hewlett-Packard nx9020
  hp6000          Hewlett-Packard Omnibook 6000/6100
  honeywell_euroboard Honeywell Euroboard
  hpmini110       Hewlett-Packard Mini 110 Notebook
  rapidaccess     IBM Rapid Access
  rapidaccess2    IBM Rapid Access II
  thinkpad        IBM ThinkPad 560Z/600/600E/A22E
  thinkpad60      IBM ThinkPad R60/T60/R61/T61
  thinkpadz60     IBM ThinkPad Z60m/Z60t/Z61m/Z61t
  ibm_spacesaver  IBM Space Saver
  logiaccess      Logitech Access Keyboard
  logiclx300      Logitech Cordless Desktop LX-300
  logii350        Logitech Internet 350 Keyboard
  logimel         Logitech Media Elite Keyboard
  logicd          Logitech Cordless Desktop
  logicd_it       Logitech Cordless Desktop iTouch
  logicd_nav      Logitech Cordless Desktop Navigator
  logicd_opt      Logitech Cordless Desktop Optical
  logicda         Logitech Cordless Desktop (alternate option)
  logicdpa2       Logitech Cordless Desktop Pro (alternate option 2)
  logicfn         Logitech Cordless Freedom/Desktop Navigator
  logicdn         Logitech Cordless Desktop Navigator
  logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
  logiik          Logitech Internet Keyboard
  itouch          Logitech iTouch
  logicink        Logitech Internet Navigator Keyboard
  logiex110       Logitech Cordless Desktop EX110
  logiinkse       Logitech iTouch Internet Navigator Keyboard SE
  logiinkseusb    Logitech iTouch Internet Navigator Keyboard SE (USB)
  logiultrax      Logitech Ultra-X Keyboard
  logiultraxc     Logitech Ultra-X Cordless Media Desktop Keyboard
  logidinovo      Logitech diNovo Keyboard
  logidinovoedge  Logitech diNovo Edge Keyboard
  mx1998          Memorex MX1998
  mx2500          Memorex MX2500 EZ-Access Keyboard
  mx2750          Memorex MX2750
  microsoft4000   Microsoft Natural Wireless Ergonomic Keyboard 4000
  microsoft7000   Microsoft Natural Wireless Ergonomic Keyboard 7000
  microsoftinet   Microsoft Internet Keyboard
  microsoftpro    Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
  microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
  microsoftprooem Microsoft Natural Keyboard Pro OEM
  vsonku306       ViewSonic KU-306 Internet Keyboard
  microsoftprose  Microsoft Internet Keyboard Pro, Swedish
  microsoftoffice Microsoft Office Keyboard
  microsoftmult   Microsoft Wireless Multimedia Keyboard 1.0A
  microsoftelite  Microsoft Natural Keyboard Elite
  microsoftccurve2k Microsoft Comfort Curve Keyboard 2000
  oretec          Ortek MCK-800 MM/Internet keyboard
  propeller       Propeller Voyager (KTEZ-1000)
  qtronix         QTronix Scorpius 98N+
  samsung4500     Samsung SDM 4500P
  samsung4510     Samsung SDM 4510P
  sanwaskbkg3     Sanwa Supply SKB-KG3
  sk1300          SK-1300
  sk2500          SK-2500
  sk6200          SK-6200
  sk7100          SK-7100
  sp_inet         Super Power Multimedia Keyboard
  sven            SVEN Ergonomic 2500
  sven303         SVEN Slim 303
  symplon         Symplon PaceBook (tablet PC)
  toshiba_s3000   Toshiba Satellite S3000
  trust           Trust Wireless Keyboard Classic
  trustda         Trust Direct Access Keyboard
  trust_slimline  Trust Slimline
  tm2020          TypeMatrix EZ-Reach 2020
  tm2030PS2       TypeMatrix EZ-Reach 2030 PS2
  tm2030USB       TypeMatrix EZ-Reach 2030 USB
  tm2030USB-102   TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
  tm2030USB-106   TypeMatrix EZ-Reach 2030 USB (106:JP mode)
  yahoo           Yahoo! Internet Keyboard
  macbook78       MacBook/MacBook Pro
  macbook79       MacBook/MacBook Pro (Intl)
  macintosh       Macintosh
  macintosh_old   Macintosh Old
  macintosh_hhk   Happy Hacking Keyboard for Mac
  acer_c300       Acer C300
  acer_ferrari4k  Acer Ferrari 4000
  acer_laptop     Acer Laptop
  asus_laptop     Asus Laptop
  apple           Apple
  apple_laptop    Apple Laptop
  applealu_ansi   Apple Aluminium Keyboard (ANSI)
  applealu_iso    Apple Aluminium Keyboard (ISO)
  applealu_jis    Apple Aluminium Keyboard (JIS)
  silvercrest     SILVERCREST Multimedia Wireless Keyboard
  emachines       Laptop/notebook eMachines m68xx
  benqx           BenQ X-Touch
  benqx730        BenQ X-Touch 730
  benqx800        BenQ X-Touch 800
  hhk             Happy Hacking Keyboard
  classmate       Classmate PC
  olpc            OLPC
  sun_type7_usb   Sun Type 7 USB
  sun_type7_euro_usb Sun Type 7 USB (European layout)
  sun_type7_unix_usb Sun Type 7 USB (Unix layout)
  sun_type7_jp_usb Sun Type 7 USB (Japanese layout) / Japanese 106-key
  sun_type6_usb   Sun Type 6/7 USB
  sun_type6_euro_usb Sun Type 6/7 USB (European layout)
  sun_type6_unix_usb Sun Type 6 USB (Unix layout)
  sun_type6_jp_usb Sun Type 6 USB (Japanese layout)
  sun_type6_jp    Sun Type 6 (Japanese layout)
  targa_v811      Targa Visionary 811
  unitekkb1925    Unitek KB-1925
  compalfl90      FL90
  creativedw7000  Creative Desktop Wireless 7000
  htcdream        Htc Dream phone

! layout
  us              English (US)
  af              Afghani
  ara             Arabic
  al              Albanian
  am              Armenian
  at              German (Austria)
  az              Azerbaijani
  by              Belarusian
  be              Belgian
  bd              Bangla
  in              Indian
  ba              Bosnian
  br              Portuguese (Brazil)
  bg              Bulgarian
  ma              Arabic (Morocco)
  cm              English (Cameroon)
  mm              Burmese
  ca              French (Canada)
  cd              French (Democratic Republic of the Congo)
  cn              Chinese
  hr              Croatian
  cz              Czech
  dk              Danish
  nl              Dutch
  bt              Dzongkha
  ee              Estonian
  ir              Persian
  iq              Iraqi
  fo              Faroese
  fi              Finnish
  fr              French
  gh              English (Ghana)
  gn              French (Guinea)
  ge              Georgian
  de              German
  gr              Greek
  hu              Hungarian
  is              Icelandic
  il              Hebrew
  it              Italian
  jp              Japanese
  kg              Kyrgyz
  kh              Khmer (Cambodia)
  kz              Kazakh
  la              Lao
  latam           Spanish (Latin American)
  lt              Lithuanian
  lv              Latvian
  mao             Maori
  me              Montenegrin
  mk              Macedonian
  mt              Maltese
  mn              Mongolian
  no              Norwegian
  pl              Polish
  pt              Portuguese
  ro              Romanian
  ru              Russian
  rs              Serbian
  si              Slovenian
  sk              Slovak
  es              Spanish
  se              Swedish
  ch              German (Switzerland)
  sy              Arabic (Syria)
  tj              Tajik
  lk              Sinhala (phonetic)
  th              Thai
  tr              Turkish
  tw              Taiwanese
  ua              Ukrainian
  gb              English (UK)
  uz              Uzbek
  vn              Vietnamese
  kr              Korean
  nec_vndr/jp     Japanese (PC-98xx Series)
  ie              Irish
  pk              Urdu (Pakistan)
  mv              Dhivehi
  za              English (South Africa)
  epo             Esperanto
  np              Nepali
  ng              English (Nigeria)
  et              Amharic
  sn              Wolof
  brai            Braille
  tm              Turkmen
  ml              Bambara
  tz              Swahili (Tanzania)
  ke              Swahili (Kenya)
  bw              Tswana
  ph              Filipino
  md              Moldavian

! variant
  chr             us: Cherokee
  euro            us: English (US, with euro on 5)
  intl            us: English (US, international with dead keys)
  brz		  us: English (US, intl, for pt-br) 
  alt-intl        us: English (US, alternative international)
  colemak         us: English (Colemak)
  dvorak          us: English (Dvorak)
  dvorak-intl     us: English (Dvorak, international with dead keys)
  dvorak-alt-intl us: English (Dvorak alternative international no dead keys)
  dvorak-l        us: English (left handed Dvorak)
  dvorak-r        us: English (right handed Dvorak)
  dvorak-classic  us: English (classic Dvorak)
  dvp             us: English (programmer Dvorak)
  rus             us: Russian (US, phonetic)
  mac             us: English (Macintosh)
  altgr-intl      us: English (international AltGr dead keys)
  olpc2           us: English (the divide/multiply keys toggle the layout)
  hbs             us: Serbo-Croatian (US)
  workman         us: English (Workman)
  workman-intl    us: English (Workman, international with dead keys)
  ps              af: Pashto
  uz              af: Uzbek (Afghanistan)
  olpc-ps         af: Pashto (Afghanistan, OLPC)
  fa-olpc         af: Persian (Afghanistan, Dari OLPC)
  uz-olpc         af: Uzbek (Afghanistan, OLPC)
  azerty          ara: Arabic (azerty)
  azerty_digits   ara: Arabic (azerty/digits)
  digits          ara: Arabic (digits)
  qwerty          ara: Arabic (qwerty)
  qwerty_digits   ara: Arabic (qwerty/digits)
  buckwalter      ara: Arabic (Buckwalter)
  plisi-d1        al: Albanian (Plisi D1)
  phonetic        am: Armenian (phonetic)
  phonetic-alt    am: Armenian (alternative phonetic)
  eastern         am: Armenian (eastern)
  western         am: Armenian (western)
  eastern-alt     am: Armenian (alternative eastern)
  nodeadkeys      at: German (Austria, eliminate dead keys)
  sundeadkeys     at: German (Austria, Sun dead keys)
  mac             at: German (Austria, Macintosh)
  cyrillic        az: Azerbaijani (Cyrillic)
  legacy          by: Belarusian (legacy)
  latin           by: Belarusian (Latin)
  oss             be: Belgian (alternative)
  oss_latin9      be: Belgian (alternative, Latin-9 only)
  oss_sundeadkeys be: Belgian (alternative, Sun dead keys)
  iso-alternate   be: Belgian (ISO alternate)
  nodeadkeys      be: Belgian (eliminate dead keys)
  sundeadkeys     be: Belgian (Sun dead keys)
  wang            be: Belgian (Wang model 724 azerty)
  probhat         bd: Bangla (Probhat)
  ben             in: Bangla (India)
  ben_probhat     in: Bangla (India, Probhat)
  ben_baishakhi   in: Bangla (India, Baishakhi)
  ben_bornona     in: Bangla (India, Bornona)
  ben_gitanjali   in: Bangla (India, Uni Gitanjali)
  ben_inscript    in: Bangla (India, Baishakhi Inscript)
  eeyek           in: Manipuri (Eeyek)
  guj             in: Gujarati
  guru            in: Punjabi (Gurmukhi)
  jhelum          in: Punjabi (Gurmukhi Jhelum)
  kan             in: Kannada
  kan-kagapa      in: Kannada (KaGaPa phonetic)
  mal             in: Malayalam
  mal_lalitha     in: Malayalam (Lalitha)
  mal_enhanced    in: Malayalam (enhanced Inscript, with rupee sign)
  ori             in: Oriya
  tam_unicode     in: Tamil (Unicode)
  tam_keyboard_with_numerals in: Tamil (keyboard with numerals)
  tam_TAB         in: Tamil (TAB typewriter)
  tam_TSCII       in: Tamil (TSCII typewriter)
  tam             in: Tamil
  tel             in: Telugu
  tel-kagapa      in: Telugu (KaGaPa phonetic)
  urd-phonetic    in: Urdu (phonetic)
  urd-phonetic3   in: Urdu (alternative phonetic)
  urd-winkeys     in: Urdu (WinKeys)
  bolnagri        in: Hindi (Bolnagri)
  hin-wx          in: Hindi (Wx)
  hin-kagapa      in: Hindi (KaGaPa phonetic)
  san-kagapa      in: Sanskrit (KaGaPa phonetic)
  mar-kagapa      in: Marathi (KaGaPa phonetic)
  eng             in: English (India, with rupee sign)
  alternatequotes ba: Bosnian (with guillemets for quotes)
  unicode         ba: Bosnian (with Bosnian digraphs)
  unicodeus       ba: Bosnian (US keyboard with Bosnian digraphs)
  us              ba: Bosnian (US keyboard with Bosnian letters)
  nodeadkeys      br: Portuguese (Brazil, eliminate dead keys)
  dvorak          br: Portuguese (Brazil, Dvorak)
  nativo          br: Portuguese (Brazil, Nativo)
  nativo-us       br: Portuguese (Brazil, Nativo for US keyboards)
  nativo-epo      br: Esperanto (Brazil, Nativo)
  phonetic        bg: Bulgarian (traditional phonetic)
  bas_phonetic    bg: Bulgarian (new phonetic)
  french          ma: French (Morocco)
  tifinagh        ma: Berber (Morocco, Tifinagh)
  tifinagh-alt    ma: Berber (Morocco, Tifinagh alternative)
  tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alternative phonetic)
  tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
  tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
  tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
  french          cm: French (Cameroon)
  qwerty          cm: Cameroon Multilingual (qwerty)
  azerty          cm: Cameroon Multilingual (azerty)
  dvorak          cm: Cameroon Multilingual (Dvorak)
  fr-dvorak       ca: French (Canada, Dvorak)
  fr-legacy       ca: French (Canada, legacy)
  multix          ca: Canadian Multilingual
  multi           ca: Canadian Multilingual (first part)
  multi-2gr       ca: Canadian Multilingual (second part)
  ike             ca: Inuktitut
  eng             ca: English (Canada)
  tib             cn: Tibetan
  tib_asciinum    cn: Tibetan (with ASCII numerals)
  ug              cn: Uyghur
  alternatequotes hr: Croatian (with guillemets for quotes)
  unicode         hr: Croatian (with Croatian digraphs)
  unicodeus       hr: Croatian (US keyboard with Croatian digraphs)
  us              hr: Croatian (US keyboard with Croatian letters)
  bksl            cz: Czech (with &lt;\|&gt; key)
  qwerty          cz: Czech (qwerty)
  qwerty_bksl     cz: Czech (qwerty, extended Backslash)
  ucw             cz: Czech (UCW layout, accented letters only)
  dvorak-ucw      cz: Czech (US Dvorak with CZ UCW support)
  nodeadkeys      dk: Danish (eliminate dead keys)
  winkeys         dk: Danish (Winkeys)
  mac             dk: Danish (Macintosh)
  mac_nodeadkeys  dk: Danish (Macintosh, eliminate dead keys)
  dvorak          dk: Danish (Dvorak)
  sundeadkeys     nl: Dutch (Sun dead keys)
  mac             nl: Dutch (Macintosh)
  std             nl: Dutch (standard)
  nodeadkeys      ee: Estonian (eliminate dead keys)
  dvorak          ee: Estonian (Dvorak)
  us              ee: Estonian (US keyboard with Estonian letters)
  pes_keypad      ir: Persian (with Persian keypad)
  ku              ir: Kurdish (Iran, Latin Q)
  ku_f            ir: Kurdish (Iran, F)
  ku_alt          ir: Kurdish (Iran, Latin Alt-Q)
  ku_ara          ir: Kurdish (Iran, Arabic-Latin)
  ku              iq: Kurdish (Iraq, Latin Q)
  ku_f            iq: Kurdish (Iraq, F)
  ku_alt          iq: Kurdish (Iraq, Latin Alt-Q)
  ku_ara          iq: Kurdish (Iraq, Arabic-Latin)
  nodeadkeys      fo: Faroese (eliminate dead keys)
  classic         fi: Finnish (classic)
  nodeadkeys      fi: Finnish (classic, eliminate dead keys)
  winkeys         fi: Finnish (Winkeys)
  smi             fi: Northern Saami (Finland)
  mac             fi: Finnish (Macintosh)
  nodeadkeys      fr: French (eliminate dead keys)
  sundeadkeys     fr: French (Sun dead keys)
  oss             fr: French (alternative)
  oss_latin9      fr: French (alternative, Latin-9 only)
  oss_nodeadkeys  fr: French (alternative, eliminate dead keys)
  oss_sundeadkeys fr: French (alternative, Sun dead keys)
  latin9          fr: French (legacy, alternative)
  latin9_nodeadkeys fr: French (legacy, alternative, eliminate dead keys)
  latin9_sundeadkeys fr: French (legacy, alternative, Sun dead keys)
  bepo            fr: French (Bepo, ergonomic, Dvorak way)
  bepo_latin9     fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
  dvorak          fr: French (Dvorak)
  mac             fr: French (Macintosh)
  bre             fr: French (Breton)
  oci             fr: Occitan
  geo             fr: Georgian (France, AZERTY Tskapo)
  generic         gh: English (Ghana, multilingual)
  akan            gh: Akan
  ewe             gh: Ewe
  fula            gh: Fula
  ga              gh: Ga
  hausa           gh: Hausa
  avn             gh: Avatime
  gillbt          gh: English (Ghana, GILLBT)
  ergonomic       ge: Georgian (ergonomic)
  mess            ge: Georgian (MESS)
  ru              ge: Russian (Georgia)
  os              ge: Ossetian (Georgia)
  deadacute       de: German (dead acute)
  deadgraveacute  de: German (dead grave acute)
  nodeadkeys      de: German (eliminate dead keys)
  T3              de: German (T3)
  ro              de: Romanian (Germany)
  ro_nodeadkeys   de: Romanian (Germany, eliminate dead keys)
  dvorak          de: German (Dvorak)
  sundeadkeys     de: German (Sun dead keys)
  neo             de: German (Neo 2)
  mac             de: German (Macintosh)
  mac_nodeadkeys  de: German (Macintosh, eliminate dead keys)
  dsb             de: Lower Sorbian
  dsb_qwertz      de: Lower Sorbian (qwertz)
  qwerty          de: German (qwerty)
  tr              de: Turkish (Germany)
  ru              de: Russian (Germany, phonetic)
  legacy          de: German (legacy)
  simple          gr: Greek (simple)
  extended        gr: Greek (extended)
  nodeadkeys      gr: Greek (eliminate dead keys)
  polytonic       gr: Greek (polytonic)
  standard        hu: Hungarian (standard)
  nodeadkeys      hu: Hungarian (eliminate dead keys)
  qwerty          hu: Hungarian (qwerty)
  101_qwertz_comma_dead hu: Hungarian (101/qwertz/comma/dead keys)
  101_qwertz_comma_nodead hu: Hungarian (101/qwertz/comma/eliminate dead keys)
  101_qwertz_dot_dead hu: Hungarian (101/qwertz/dot/dead keys)
  101_qwertz_dot_nodead hu: Hungarian (101/qwertz/dot/eliminate dead keys)
  101_qwerty_comma_dead hu: Hungarian (101/qwerty/comma/dead keys)
  101_qwerty_comma_nodead hu: Hungarian (101/qwerty/comma/eliminate dead keys)
  101_qwerty_dot_dead hu: Hungarian (101/qwerty/dot/dead keys)
  101_qwerty_dot_nodead hu: Hungarian (101/qwerty/dot/eliminate dead keys)
  102_qwertz_comma_dead hu: Hungarian (102/qwertz/comma/dead keys)
  102_qwertz_comma_nodead hu: Hungarian (102/qwertz/comma/eliminate dead keys)
  102_qwertz_dot_dead hu: Hungarian (102/qwertz/dot/dead keys)
  102_qwertz_dot_nodead hu: Hungarian (102/qwertz/dot/eliminate dead keys)
  102_qwerty_comma_dead hu: Hungarian (102/qwerty/comma/dead keys)
  102_qwerty_comma_nodead hu: Hungarian (102/qwerty/comma/eliminate dead keys)
  102_qwerty_dot_dead hu: Hungarian (102/qwerty/dot/dead keys)
  102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys)
  Sundeadkeys     is: Icelandic (Sun dead keys)
  nodeadkeys      is: Icelandic (eliminate dead keys)
  mac             is: Icelandic (Macintosh)
  dvorak          is: Icelandic (Dvorak)
  lyx             il: Hebrew (lyx)
  phonetic        il: Hebrew (phonetic)
  biblical        il: Hebrew (Biblical, Tiro)
  nodeadkeys      it: Italian (eliminate dead keys)
  winkeys         it: Italian (Winkeys)
  mac             it: Italian (Macintosh)
  us              it: Italian (US keyboard with Italian letters)
  geo             it: Georgian (Italy)
  ibm             it: Italian (IBM 142)
  kana            jp: Japanese (Kana)
  kana86          jp: Japanese (Kana 86)
  OADG109A        jp: Japanese (OADG 109A)
  mac             jp: Japanese (Macintosh)
  dvorak          jp: Japanese (Dvorak)
  phonetic        kg: Kyrgyz (phonetic)
  ruskaz          kz: Russian (Kazakhstan, with Kazakh)
  kazrus          kz: Kazakh (with Russian)
  stea            la: Lao (STEA proposed standard layout)
  nodeadkeys      latam: Spanish (Latin American, eliminate dead keys)
  deadtilde       latam: Spanish (Latin American, include dead tilde)
  sundeadkeys     latam: Spanish (Latin American, Sun dead keys)
  std             lt: Lithuanian (standard)
  us              lt: Lithuanian (US keyboard with Lithuanian letters)
  ibm             lt: Lithuanian (IBM LST 1205-92)
  lekp            lt: Lithuanian (LEKP)
  lekpa           lt: Lithuanian (LEKPa)
  apostrophe      lv: Latvian (apostrophe variant)
  tilde           lv: Latvian (tilde variant)
  fkey            lv: Latvian (F variant)
  modern          lv: Latvian (modern)
  ergonomic       lv: Latvian (ergonomic, ŪGJRMV)
  adapted         lv: Latvian (adapted)
  cyrillic        me: Montenegrin (Cyrillic)
  cyrillicyz      me: Montenegrin (Cyrillic, ZE and ZHE swapped)
  latinunicode    me: Montenegrin (Latin Unicode)
  latinyz         me: Montenegrin (Latin qwerty)
  latinunicodeyz  me: Montenegrin (Latin Unicode qwerty)
  cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
  latinalternatequotes me: Montenegrin (Latin with guillemets)
  nodeadkeys      mk: Macedonian (eliminate dead keys)
  us              mt: Maltese (with US layout)
  nodeadkeys      no: Norwegian (eliminate dead keys)
  winkeys         no: Norwegian (Winkeys)
  dvorak          no: Norwegian (Dvorak)
  smi             no: Northern Saami (Norway)
  smi_nodeadkeys  no: Northern Saami (Norway, eliminate dead keys)
  mac             no: Norwegian (Macintosh)
  mac_nodeadkeys  no: Norwegian (Macintosh, eliminate dead keys)
  colemak         no: Norwegian (Colemak)
  legacy          pl: Polish (legacy)
  qwertz          pl: Polish (qwertz)
  dvorak          pl: Polish (Dvorak)
  dvorak_quotes   pl: Polish (Dvorak, Polish quotes on quotemark key)
  dvorak_altquotes pl: Polish (Dvorak, Polish quotes on key 1)
  csb             pl: Kashubian
  szl             pl: Silesian
  ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
  dvp             pl: Polish (programmer Dvorak)
  nodeadkeys      pt: Portuguese (eliminate dead keys)
  sundeadkeys     pt: Portuguese (Sun dead keys)
  mac             pt: Portuguese (Macintosh)
  mac_nodeadkeys  pt: Portuguese (Macintosh, eliminate dead keys)
  mac_sundeadkeys pt: Portuguese (Macintosh, Sun dead keys)
  nativo          pt: Portuguese (Nativo)
  nativo-us       pt: Portuguese (Nativo for US keyboards)
  nativo-epo      pt: Esperanto (Portugal, Nativo)
  cedilla         ro: Romanian (cedilla)
  std             ro: Romanian (standard)
  std_cedilla     ro: Romanian (standard cedilla)
  winkeys         ro: Romanian (WinKeys)
  phonetic        ru: Russian (phonetic)
  phonetic_winkeys ru: Russian (phonetic WinKeys)
  typewriter      ru: Russian (typewriter)
  legacy          ru: Russian (legacy)
  typewriter-legacy ru: Russian (typewriter, legacy)
  tt              ru: Tatar
  os_legacy       ru: Ossetian (legacy)
  os_winkeys      ru: Ossetian (WinKeys)
  cv              ru: Chuvash
  cv_latin        ru: Chuvash (Latin)
  udm             ru: Udmurt
  kom             ru: Komi
  sah             ru: Yakut
  xal             ru: Kalmyk
  dos             ru: Russian (DOS)
  mac             ru: Russian (Macintosh)
  srp             ru: Serbian (Russia)
  bak             ru: Bashkirian
  chm             ru: Mari
  yz              rs: Serbian (Cyrillic, ZE and ZHE swapped)
  latin           rs: Serbian (Latin)
  latinunicode    rs: Serbian (Latin Unicode)
  latinyz         rs: Serbian (Latin qwerty)
  latinunicodeyz  rs: Serbian (Latin Unicode qwerty)
  alternatequotes rs: Serbian (Cyrillic with guillemets)
  latinalternatequotes rs: Serbian (Latin with guillemets)
  rue             rs: Pannonian Rusyn
  alternatequotes si: Slovenian (with guillemets for quotes)
  us              si: Slovenian (US keyboard with Slovenian letters)
  bksl            sk: Slovak (extended Backslash)
  qwerty          sk: Slovak (qwerty)
  qwerty_bksl     sk: Slovak (qwerty, extended Backslash)
  nodeadkeys      es: Spanish (eliminate dead keys)
  winkeys         es: Spanish (Winkeys)
  deadtilde       es: Spanish (include dead tilde)
  sundeadkeys     es: Spanish (Sun dead keys)
  dvorak          es: Spanish (Dvorak)
  ast             es: Asturian (Spain, with bottom-dot H and bottom-dot L)
  cat             es: Catalan (Spain, with middle-dot L)
  mac             es: Spanish (Macintosh)
  nodeadkeys      se: Swedish (eliminate dead keys)
  dvorak          se: Swedish (Dvorak)
  rus             se: Russian (Sweden, phonetic)
  rus_nodeadkeys  se: Russian (Sweden, phonetic, eliminate dead keys)
  smi             se: Northern Saami (Sweden)
  mac             se: Swedish (Macintosh)
  svdvorak        se: Swedish (Svdvorak)
  swl             se: Swedish Sign Language
  legacy          ch: German (Switzerland, legacy)
  de_nodeadkeys   ch: German (Switzerland, eliminate dead keys)
  de_sundeadkeys  ch: German (Switzerland, Sun dead keys)
  fr              ch: French (Switzerland)
  fr_nodeadkeys   ch: French (Switzerland, eliminate dead keys)
  fr_sundeadkeys  ch: French (Switzerland, Sun dead keys)
  fr_mac          ch: French (Switzerland, Macintosh)
  de_mac          ch: German (Switzerland, Macintosh)
  syc             sy: Syriac
  syc_phonetic    sy: Syriac (phonetic)
  ku              sy: Kurdish (Syria, Latin Q)
  ku_f            sy: Kurdish (Syria, F)
  ku_alt          sy: Kurdish (Syria, Latin Alt-Q)
  legacy          tj: Tajik (legacy)
  tam_unicode     lk: Tamil (Sri Lanka, Unicode)
  tam_TAB         lk: Tamil (Sri Lanka, TAB Typewriter)
  tis             th: Thai (TIS-820.2538)
  pat             th: Thai (Pattachote)
  f               tr: Turkish (F)
  alt             tr: Turkish (Alt-Q)
  sundeadkeys     tr: Turkish (Sun dead keys)
  ku              tr: Kurdish (Turkey, Latin Q)
  ku_f            tr: Kurdish (Turkey, F)
  ku_alt          tr: Kurdish (Turkey, Latin Alt-Q)
  intl            tr: Turkish (international with dead keys)
  crh             tr: Crimean Tatar (Turkish Q)
  crh_f           tr: Crimean Tatar (Turkish F)
  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
  indigenous      tw: Taiwanese (indigenous)
  saisiyat        tw: Saisiyat (Taiwan)
  phonetic        ua: Ukrainian (phonetic)
  typewriter      ua: Ukrainian (typewriter)
  winkeys         ua: Ukrainian (WinKeys)
  legacy          ua: Ukrainian (legacy)
  rstu            ua: Ukrainian (standard RSTU)
  rstu_ru         ua: Russian (Ukraine, standard RSTU)
  homophonic      ua: Ukrainian (homophonic)
  extd            gb: English (UK, extended WinKeys)
  intl            gb: English (UK, international with dead keys)
  dvorak          gb: English (UK, Dvorak)
  dvorakukp       gb: English (UK, Dvorak with UK punctuation)
  mac             gb: English (UK, Macintosh)
  mac_intl        gb: English (UK, Macintosh international)
  colemak         gb: English (UK, Colemak)
  latin           uz: Uzbek (Latin)
  kr104           kr: Korean (101/104 key compatible)
  CloGaelach      ie: CloGaelach
  UnicodeExpert   ie: Irish (UnicodeExpert)
  ogam            ie: Ogham
  ogam_is434      ie: Ogham (IS434)
  urd-crulp       pk: Urdu (Pakistan, CRULP)
  urd-nla         pk: Urdu (Pakistan, NLA)
  ara             pk: Arabic (Pakistan)
  snd             pk: Sindhi
  legacy          epo: Esperanto (displaced semicolon and quote, obsolete)
  igbo            ng: Igbo
  yoruba          ng: Yoruba
  hausa           ng: Hausa
  left_hand       brai: Braille (left hand)
  right_hand      brai: Braille (right hand)
  alt             tm: Turkmen (Alt-Q)
  fr-oss          ml: French (Mali, alternative)
  us-mac          ml: English (Mali, US Macintosh)
  us-intl         ml: English (Mali, US international)
  kik             ke: Kikuyu
  qwerty-bay      ph: Filipino (QWERTY Baybayin)
  capewell-dvorak ph: Filipino (Capewell-Dvorak Latin)
  capewell-dvorak-bay ph: Filipino (Capewell-Dvorak Baybayin)
  capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006 Latin)
  capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006 Baybayin)
  colemak         ph: Filipino (Colemak Latin)
  colemak-bay     ph: Filipino (Colemak Baybayin)
  dvorak          ph: Filipino (Dvorak Latin)
  dvorak-bay      ph: Filipino (Dvorak Baybayin)
  gag             md: Moldavian (Gagauz)

! option
  grp                  Switching to another layout
  grp:switch           Right Alt (while pressed)
  grp:lswitch          Left Alt (while pressed)
  grp:lwin_switch      Left Win (while pressed)
  grp:rwin_switch      Right Win (while pressed)
  grp:win_switch       Any Win key (while pressed)
  grp:caps_switch      Caps Lock (while pressed), Alt+Caps Lock does the original capslock action
  grp:rctrl_switch     Right Ctrl (while pressed)
  grp:toggle           Right Alt
  grp:lalt_toggle      Left Alt
  grp:caps_toggle      Caps Lock
  grp:shift_caps_toggle Shift+Caps Lock
  grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout)
  grp:win_menu_switch  Left Win (to first layout), Right Win/Menu (to last layout)
  grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout)
  grp:alt_caps_toggle  Alt+Caps Lock
  grp:shifts_toggle    Both Shift keys together
  grp:alts_toggle      Both Alt keys together
  grp:ctrls_toggle     Both Ctrl keys together
  grp:ctrl_shift_toggle Ctrl+Shift
  grp:lctrl_lshift_toggle Left Ctrl+Left Shift
  grp:rctrl_rshift_toggle Right Ctrl+Right Shift
  grp:ctrl_alt_toggle  Alt+Ctrl
  grp:alt_shift_toggle Alt+Shift
  grp:lalt_lshift_toggle Left Alt+Left Shift
  grp:alt_space_toggle Alt+Space
  grp:menu_toggle      Menu
  grp:lwin_toggle      Left Win
  grp:win_space_toggle Win Key+Space
  grp:rwin_toggle      Right Win
  grp:lshift_toggle    Left Shift
  grp:rshift_toggle    Right Shift
  grp:lctrl_toggle     Left Ctrl
  grp:rctrl_toggle     Right Ctrl
  grp:sclk_toggle      Scroll Lock
  grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
  lv3                  Key to choose 3rd level
  lv3:switch           Right Ctrl
  lv3:menu_switch      Menu
  lv3:win_switch       Any Win key
  lv3:lwin_switch      Left Win
  lv3:rwin_switch      Right Win
  lv3:alt_switch       Any Alt key
  lv3:lalt_switch      Left Alt
  lv3:ralt_switch      Right Alt
  lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose
  lv3:ralt_alt         Right Alt key never chooses 3rd level
  lv3:enter_switch     Enter on keypad
  lv3:caps_switch      Caps Lock
  lv3:bksl_switch      Backslash
  lv3:lsgt_switch      &lt;Less/Greater&gt;
  lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  lv3:lsgt_switch_latch &lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
  ctrl                 Ctrl key position
  ctrl:nocaps          Caps Lock as Ctrl
  ctrl:lctrl_meta      Left Ctrl as Meta
  ctrl:swapcaps        Swap Ctrl and Caps Lock
  ctrl:ac_ctrl         At left of 'A'
  ctrl:aa_ctrl         At bottom left
  ctrl:rctrl_ralt      Right Ctrl as Right Alt
  ctrl:menu_rctrl      Menu as Right Ctrl
  ctrl:ctrl_ralt       Right Alt as Right Ctrl
  ctrl:swap_lalt_lctl  Swap Left Alt key with Left Ctrl key
  ctrl:swap_lwin_lctl  Swap Left Win key with Left Ctrl key
  ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt
  grp_led              Use keyboard LED to show alternative layout
  grp_led:num          Num Lock
  grp_led:caps         Caps Lock
  grp_led:scroll       Scroll Lock
  keypad               Layout of numeric keypad
  keypad:legacy        Legacy
  keypad:oss           Unicode additions (arrows and math operators)
  keypad:future        Unicode additions (arrows and math operators; math operators on default level)
  keypad:legacy_wang   Legacy Wang 724
  keypad:oss_wang      Wang 724 keypad with Unicode additions (arrows and math operators)
  keypad:future_wang   Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
  keypad:hex           Hexadecimal
  keypad:atm           ATM/phone-style
  kpdl                 Numeric keypad delete key behaviour
  kpdl:dot             Legacy key with dot
  kpdl:comma           Legacy key with comma
  kpdl:dotoss          Four-level key with dot
  kpdl:dotoss_latin9   Four-level key with dot, Latin-9 only
  kpdl:commaoss        Four-level key with comma
  kpdl:momayyezoss     Four-level key with momayyez
  kpdl:kposs           Four-level key with abstract separators
  kpdl:semi            Semicolon on third level
  caps                 Caps Lock key behavior
  caps:internal        Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
  caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
  caps:shift           Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
  caps:shift_nocancel  Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
  caps:capslock        Caps Lock toggles normal capitalization of alphabetic characters
  caps:numlock         Make Caps Lock an additional Num Lock
  caps:swapescape      Swap ESC and Caps Lock
  caps:escape          Make Caps Lock an additional ESC
  caps:backspace       Make Caps Lock an additional Backspace
  caps:super           Make Caps Lock an additional Super
  caps:hyper           Make Caps Lock an additional Hyper
  caps:shiftlock       Caps Lock toggles ShiftLock (affects all keys)
  caps:none            Caps Lock is disabled
  caps:ctrl_modifier   Make Caps Lock an additional Ctrl
  altwin               Alt/Win key behavior
  altwin:menu          Add the standard behavior to Menu key
  altwin:meta_alt      Alt and Meta are on Alt keys
  altwin:alt_win       Alt is mapped to Win keys (and the usual Alt keys)
  altwin:ctrl_win      Ctrl is mapped to Win keys (and the usual Ctrl keys)
  altwin:ctrl_alt_win  Ctrl is mapped to Alt keys, Alt is mapped to Win keys
  altwin:meta_win      Meta is mapped to Win keys
  altwin:left_meta_win Meta is mapped to Left Win
  altwin:hyper_win     Hyper is mapped to Win keys
  altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
  altwin:swap_alt_win  Alt is swapped with Win
  Compose key          Position of Compose key
  compose:ralt         Right Alt
  compose:lwin         Left Win
  compose:lwin-altgr   3rd level of Left Win
  compose:rwin         Right Win
  compose:rwin-altgr   3rd level of Right Win
  compose:menu         Menu
  compose:menu-altgr   3rd level of Menu
  compose:lctrl        Left Ctrl
  compose:lctrl-altgr  3rd level of Left Ctrl
  compose:rctrl        Right Ctrl
  compose:rctrl-altgr  3rd level of Right Ctrl
  compose:caps         Caps Lock
  compose:caps-altgr   3rd level of Caps Lock
  compose:102          &lt;Less/Greater&gt;
  compose:102-altgr    3rd level of &lt;Less/Greater&gt;
  compose:paus         Pause
  compose:prsc         PrtSc
  compose:sclk         Scroll Lock
  compat               Miscellaneous compatibility options
  numpad:pc            Default numeric keypad keys
  numpad:mac           Numeric keypad keys always enter digits (as in Mac OS)
  numpad:microsoft     Shift with numeric keypad keys works as in MS Windows
  numpad:shift3        Shift does not cancel Num Lock, chooses 3rd level instead
  srvrkeys:none        Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
  apple:alupckeys      Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)
  shift:breaks_caps    Shift cancels Caps Lock
  misc:typo            Enable extra typographic characters
  shift:both_capslock  Both Shift keys together toggle Caps Lock
  shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
  shift:both_shiftlock Both Shift keys together toggle ShiftLock
  keypad:pointerkeys   Shift + NumLock toggles PointerKeys
  grab:break_actions   Allow breaking grabs with keyboard actions (warning: security risk)
  grab:debug           Allow grab and window tree logging
  currencysign         Adding currency signs to certain keys
  eurosign:e           Euro on E
  eurosign:2           Euro on 2
  eurosign:4           Euro on 4
  eurosign:5           Euro on 5
  rupeesign:4          Rupee on 4
  lv5                  Key to choose 5th level
  lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:ralt_switch_lock Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser
  lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser
  nbsp                 Using space key to input non-breakable space character
  nbsp:none            Usual space at any level
  nbsp:level2          Non-breakable space character at second level
  nbsp:level3          Non-breakable space character at third level
  nbsp:level3s         Non-breakable space character at third level, nothing at fourth level
  nbsp:level3n         Non-breakable space character at third level, thin non-breakable space character at fourth level
  nbsp:level4          Non-breakable space character at fourth level
  nbsp:level4n         Non-breakable space character at fourth level, thin non-breakable space character at sixth level
  nbsp:level4nl        Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
  nbsp:zwnj2           Zero-width non-joiner character at second level
  nbsp:zwnj2zwj3       Zero-width non-joiner character at second level, zero-width joiner character at third level
  nbsp:zwnj2zwj3nb4    Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level
  nbsp:zwnj2nb3        Zero-width non-joiner character at second level, non-breakable space character at third level
  nbsp:zwnj2nb3s       Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level
  nbsp:zwnj2nb3zwj4    Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level
  nbsp:zwnj2nb3nnb4    Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level
  nbsp:zwnj3zwj4       Zero-width non-joiner character at third level, zero-width joiner at fourth level
  japan                Japanese keyboard options
  japan:kana_lock      Kana Lock key is locking
  japan:nicola_f_bs    NICOLA-F style Backspace
  japan:hztg_escape    Make Zenkaku Hankaku an additional ESC
  esperanto            Adding Esperanto supersigned letters
  esperanto:qwerty     To the corresponding key in a Qwerty layout
  esperanto:dvorak     To the corresponding key in a Dvorak layout
  esperanto:colemak    To the corresponding key in a Colemak layout
  solaris              Maintain key compatibility with old Solaris keycodes
  solaris:sun_compat   Sun Key compatibility
  terminate            Key sequence to kill the X server
  terminate:ctrl_alt_bksp Ctrl + Alt + Backspace
XKBLAYOUT="us,us"
XKBVARIANT="intl,brz"
BACKSPACE="guess"
XKBMODEL="pc105"
XKBOPTIONS="grp:alts_toggle"

Reply to: