Why are some of the setxkbmap options being ignored?

in share / X11 / xkb / rules / evdev / lst, I find this set of options for ctrl

  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

      

Some of them work - if I run setxkbmap -option -option 'ctrl:nocaps'

I get the correct behavior. However, some of them are ignored, for example setxkbmap -option -option 'ctrl:swap_lalt_lctl_lwin'

.

One observation I made is that ignored options are shown setxkbmap -query

but not setxkbmap -print

. Here is a demonstration of this behavior.

$ setxkbmap -option -option ctrl:nocaps
$ setxkbmap -query
rules:      evdev
model:      pc104
layout:     us
variant:    colemak
options:    ctrl:nocaps
$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us(colemak)+inet(evdev)+ctrl(nocaps)"   };
    xkb_geometry  { include "pc(pc104)" };
};
$ setxkbmap -option -option ctrl:swap_lalt_lctl_lwin
$ setxkbmap -query                                  
rules:      evdev
model:      pc104
layout:     us
variant:    colemak
options:    ctrl:swap_lalt_lctl_lwin
$ setxkbmap -print                                  
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us(colemak)+inet(evdev)"    };
    xkb_geometry  { include "pc(pc104)" };
};

      

I don't know how to dig deeper into this. Additional information on the environment

  • Linux distribution is NixOs
  • window manager is XMonad, display manager is SLiM, desktop manager
  • keyboard layout - colemak (problem persists if i switch to qwerty)
  • setxkbmap version 1.3.0 according to the man page
+2


source to share


1 answer


it looks like not all of the parameters listed in the evdev.lst file are also in the adjacent evdev file. I asked the following question regarding why this is happening in why is the evdev file in / usr / share / X 11 / xkb / rules not the same as evdev.lst?



+2


source







All Articles