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根據手冊頁