setting multiple layout variants with setxkbmap

Peter Hutterer peter.hutterer at who-t.net
Thu Jan 2 19:32:33 PST 2014


On Fri, Dec 27, 2013 at 03:33:59PM +0100, Ernest Adrogué wrote:
> Hi there,
> 
> According to setxkbmap's man page, I should be able to select multiple
> layout variants by giving setxkbmap a comma-separated list of variants.
> However when I do that, it doesn't seem to work.
> 
> With '-variant cat', it uses the specified layout variant:
> 
> ernest at doriath:~$ setxkbmap -variant cat -print
> xkb_keymap {
> 	   xkb_keycodes  { include "evdev+aliases(qwerty)"	};
> 	   xkb_types     { include "complete"			};
> 	   xkb_compat    { include "complete"			};
> 	   xkb_symbols   { include "pc+es(cat)+inet(evdev)+ctrl(nocaps)+compose(rwin)"	};
> 	   xkb_geometry  { include "pc(pc105)"						};
> };
> 
> So does '-variant nodeadkeys':
> 
> ernest at doriath:~$ setxkbmap -variant nodeadkeys -print
> xkb_keymap {
> 	   xkb_keycodes  { include "evdev+aliases(qwerty)"	};
> 	   xkb_types     { include "complete"			};
> 	   xkb_compat    { include "complete"			};
> 	   xkb_symbols   { include "pc+es(nodeadkeys)+inet(evdev)+ctrl(nocaps)+compose(rwin)"	};
> 	   xkb_geometry  { include "pc(pc105)"							};
> };
> 
> However, with '-variant cat,nodeadkeys' none of the variants is used:
> 
> ernest at doriath:~$ setxkbmap -variant cat,nodeadkeys -print
> xkb_keymap {
> 	   xkb_keycodes  { include "evdev+aliases(qwerty)"	};
> 	   xkb_types     { include "complete"			};
> 	   xkb_compat    { include "complete"			};
> 	   xkb_symbols   { include "pc+es+inet(evdev)+ctrl(nocaps)+compose(rwin)"	};
> 	   xkb_geometry  { include "pc(pc105)"						};
> };
> 
> Am I doing something wrong?

note that you can't combine variants into one, but you can use two layouts
of two different variants. so you can't have "us that does nodeadkeys and
cat", but you can have two layouts, one nodeadkeys, one cat.
that becomes
    setxkbmap -layout "us,us" -variant "foo,bar"
or, easier to understand:
    setxkbmap -layout "us(nodeadkeys),us(cat)" 

Cheers,
   Peter



More information about the xorg mailing list