我目前正在设置默认键盘布局如下:
setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]它禁用caps锁键,并使其成为一个额外的ctrl键,以及一大群其他选项。
我想做以下操作来切换键盘布局:
setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps但是,它没有重新启用caps锁键;据我所能看到的,左键和caps锁都保持为控制键。
我知道我可以清除整个选项列表,但是为了可维护性,我不想重复周围的选项。如何重新启用盖帽锁?
更新:使用xev(1)查看按键,显示ctrl:nocaps为两个键提供一个Control_L,而ctrl:swapcaps“恢复”大写锁键(按下键给出Caps_Lock)。然而,帽锁LED没有点亮,也不实际工作。
查看xkeyboard-config/symbols/ctrl文件中的X.org源代码确实提示了问题所在:
xkb_symbols "nocaps" {
replace key <CAPS> { [ Control_L, Control_L ] };
modifier_map Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Caps_Lock ] };
};后一个选项没有一个modifier_map行,不管它做什么
发布于 2012-10-26 16:43:04
以下命令应该可以工作:
xmodmap -e 'keycode 0x42 = Caps_Lock'或
setxkbmap -option幸运的是,上面的命令可以很好地恢复默认行为,这是我几乎不需要的。
我通常使用以下命令将capslock重新映射为Control (幸运的是VI/VIM支持CTRL而不是ESC):
setxkbmap -option ctrl:nocaps -layout gb发布于 2013-02-21 12:32:46
有一个选项“capslock :capslock”(映射为在xkb_symbols中添加"+capslock(capslock)“),它支持capslock。
但是,这个选项(可能所有的大写:xxxxx ?)在现有的ctrl:xxxxx之前添加;作为ctrl:swapcaps重新定义capslock键,该选项没有任何效果。
因此,您绝对需要删除所有选项,并实际放置您想要的选项;选项存在的方式不应该撤消前一个选项的操作,并且有冲突的选项(例如,两个(或更多)具有相同键的选项)您无法定义它们的顺序。
https://unix.stackexchange.com/questions/22903
复制相似问题