在share/X11/xkb/rules/evdev/lst中,我发现了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其中一些是有效的--如果我运行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)" };
};我不知道如何更深入地研究这个问题。一些进一步的环境信息是
发布于 2014-10-30 20:16:58
这似乎是因为并非文件evdev.lst中列出的所有选项都位于相邻文件evdev中。我问了一个问题,为什么在why does the file evdev in /usr/share/X11/xkb/rules not match with evdev.lst?是这样的
发布于 2018-09-30 00:49:53
也许发生这种情况是因为某些选项似乎与其他选项不兼容。
例如,如果我设置shift键来解锁caps锁(-option shift:breaks_caps),同时设置alt-shift以在键盘布局之间切换,则shift不再解锁caps锁。一旦我将布局切换组合从alt-shift更改为alt,选项shift:breaks_caps就会重新激活。
在我看来是个虫子。
https://stackoverflow.com/questions/26661743
复制相似问题