如果设置了此选项,则只需分别按下CapsLock和Shift + CapsLock,即可切换到第一(美国)和第二(ru)布局。
我对这种行为感到满意,因为它非常符合人体工程学并且不会分散注意力。
但是,此外,我还需要第三(pl)和第四(ua)布局,并且看起来它们没有预定义的快捷方式,也没有启用它的(已记录文档)选项。
我不想更改CapsLock→我们,Shift + CapsLock→ru,行为,理想情况下Ctrl + CapsLock快捷方式应在辅助(pl和ua)布局之间循环。
绑定它的最佳方法是什么?
答案 0 :(得分:0)
我相信您正在寻找toggle
选项。
XKB_DEFAULT_OPTIONS=grp:shift_caps_toggle
您也可以将其传递给setxkb
命令
setxkbmap -rules xorg -model $model -layout "us,ru,pl,ua" \
-option "grp:shift_caps_toggle"
文档相当杂乱,但是您可以使用the xorg documentation或source description。
诚然,如评论中所述,这不理想,但是设置两个键组应该很简单。
# This is the primary set
setxkbmap -rules xorg -model $model -layout "us,ru" \
-option "grp:shift_caps_toggle"
# This is the secondary
setxkbmap -rules xorg -model $model -layout "pl,ua" \
-option "grp:ctrl_caps_toggle"
答案 1 :(得分:0)
最后,我切换到WM,并使用以下配置进行了正确的设置:
input "1:1:AT_Translated_Set_2_keyboard" {
xkb_options caps:none,shift:both_capslock,compose:ralt
xkb_layout us
xkb_numlock enabled
}
bindcode Ctrl+Shift+66 \
input "1:1:AT_Translated_Set_2_keyboard" xkb_layout ua; \
input "1:1:AT_Translated_Set_2_keyboard" xkb_options caps:none,shift:both_capslock,compose:ralt
bindcode Shift+66 \
input "1:1:AT_Translated_Set_2_keyboard" xkb_layout ru; \
input "1:1:AT_Translated_Set_2_keyboard" xkb_options caps:none,shift:both_capslock,compose:ralt
bindcode Ctrl+66 \
input "1:1:AT_Translated_Set_2_keyboard" xkb_layout pl; \
input "1:1:AT_Translated_Set_2_keyboard" xkb_options caps:none,shift:both_capslock,lv3:ralt_switch_multikey
bindcode 66 \
input "1:1:AT_Translated_Set_2_keyboard" xkb_layout us; \
input "1:1:AT_Translated_Set_2_keyboard" xkb_options caps:none,shift:both_capslock,compose:ralt
在这里,我禁用了主要CapsLock,因此它开始发出66个键码,然后我将其与其他键的组合绑定到相应的键盘布局。
此外,xkb_options
的设置只是将RightAlt
绑定为compose
,ua
,ru
上的us
键和{{ 1}}符号访问lv3
布局上的键。
CapsLock功能仍可以通过pl
选项访问。