![我可以在 xkbconfig 中创建额外的键盘快捷键来切换到特定语言,而不是循环吗?](https://linux22.com/image/134987/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20xkbconfig%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E9%A2%9D%E5%A4%96%E7%9A%84%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%9D%A5%E5%88%87%E6%8D%A2%E5%88%B0%E7%89%B9%E5%AE%9A%E8%AF%AD%E8%A8%80%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%BE%AA%E7%8E%AF%E5%90%97%EF%BC%9F.png)
我当前的键盘配置非常复杂,但相关行是:
setxkbmap -option -option 'grp:rshift_toggle, compose:rctrl' dmru,ru,ua &
Rshift 现在在 dmru、ru 和 ua 之间循环。当我的屏幕被锁定时,我无法知道我使用哪种布局来输入密码,一般来说,如果有一个快捷方式可以让我回到英语,那就太棒了。 (在本例中,dmru 是自定义布局。)我无法在每次切换时运行 setxkbmap $language,因为它破坏了我的 xcape 和 xmodmap 设置;每次运行它们都需要几秒钟,而且不切实际。
是否可以切换到特定语言,而无需每次都运行 setxkbmap?
答案1
组切换选项使用 4 个键符号进行操作:ISO_First_Group
、ISO_Last_Group
、ISO_Next_Group
和ISO_Prev_Group
。您使用的选项grp:rshift_toggle
只提供ISO_Next_Group
,因此您所看到的就是循环浏览布局。
您正在寻找的行为(选择特定布局)存在于ISO_First_Group
或ISO_Last_Group
键符号上。您想要找到一个现有的(或编写一个新的)选项来提供至少一个这些键符号。
快速浏览一下man xkeyboard-config
,这些现有选项似乎包括ISO_First_Group
:
grp:shift_caps_switch
:大写锁定到第一个布局; Shift+Caps 锁定到最后一个布局grp:win_menu_switch
:将 Win 保留到第一个布局;右Win/菜单到最后一个布局grp:lctrl_rctrl_switch
:左 Ctrl 到第一个布局;右键 Ctrl 到最后一个布局grp:lctrl_lwin_rctrl_menu
:左Ctrl+左Win到第一个布局;右键 Ctrl+Menu 到第二个布局
这些选项定义在/usr/share/X11/xkb/symbols/group
.其中之一可能适合您使用。如果它们没有完全提供您想要的内容,您可以使用定义来根据您的需要定制键盘映射。