我可以在 xkbconfig 中创建额外的键盘快捷键来切换到特定语言,而不是循环吗?

我可以在 xkbconfig 中创建额外的键盘快捷键来切换到特定语言,而不是循环吗?

我当前的键盘配置非常复杂,但相关行是:

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_GroupISO_Last_GroupISO_Next_GroupISO_Prev_Group。您使用的选项grp:rshift_toggle只提供ISO_Next_Group,因此您所看到的就是循环浏览布局。

您正在寻找的行为(选择特定布局)存在于ISO_First_GroupISO_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.其中之一可能适合您使用。如果它们没有完全提供您想要的内容,您可以使用定义来根据您的需要定制键盘映射。

相关内容