2
股价/ X11/XKB /规则/了evdev/LST,我觉得这组选项CTRL为什么忽略一些setxkbmap选项?
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
他们中的一些工作 - 如果我跑setxkbmap -option -option 'ctrl:nocaps'
,我得到正确的行为。然而,其他一些被忽略,例如setxkbmap -option -option 'ctrl:swap_lalt_lctl_lwin'
。
我所做的一个观察是忽略的选项显示为setxkbmap -query
,但不显示setxkbmap -print
。这是这种行为的演示。
$ 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)" };
};
我不知道如何深入挖掘这一点。一些进一步的环境信息是
- Linux发行版是NixOs
- 窗口管理器是XMonad,显示管理器是超薄,无桌面管理器
- 键盘布局是Colemak键盘(如果我切换到QWERTY问题仍然存在)
- setxkbmap版本是1.3.0根据手册页