我当前的键盘配置非常复杂,但相关行是:
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
.其中之一可能适合您使用。如果它们没有完全提供您想要的内容,您可以使用定义来根据您的需要定制键盘映射。