![setxkbmap 在 3 个布局中的 2 个之间切换](https://linux22.com/image/28478/setxkbmap%20%E5%9C%A8%203%20%E4%B8%AA%E5%B8%83%E5%B1%80%E4%B8%AD%E7%9A%84%202%20%E4%B8%AA%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2.png)
发出该命令:
setxkbmap -layout "us,ua,ru" -variant ",winkeys" -option "grp:shift_caps_toggle,grp_led:scroll" -model pc105 -rules xorg
当点击Caps Lock+时Shift,我会在英语 (us) 和乌克兰语 (ua) 布局之间切换,但不会在俄语 (ru) 之间切换。
我尝试使用以下命令重置它:
setxkbmap -layout "us,ua,ru" -option ""
并尝试了许多不同的选择 - 没有任何帮助。
我的系统是 Gentoo Linux 和窗口管理器 wmii。
答案1
我测试了你的命令(我必须添加“-keycodes evdev”来处理我的箭头键,但这无关紧要),并且我可以在三种布局之间循环。
难道 Caps+Shift 被窗口管理器拦截了?
您还可以发出命令:xkbcomp $DISPLAY somefile.txt
(或xkbcomp $DISPLAY - | less
) 并查看 CAPS 的定义如下:
key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
当您使用 Caps+Shift 更改键盘布局时,查看 xkbcomp 的转储是否发生变化(不应该!)
答案2
setxkbmap -model pc104 -layout us,ua,ru -variant ,winkeys -option grp:lwin_switch,grp:caps_toggle,grp_led:caps
一旦CAPSLOCK命中,它就会在这三个之间切换。按住
时WIN,它将打开当前的下一个,例如:如果您当前布局“ua”,它将输入“ru”