linux - XKB_DEFAULT_OPTIONS=grp :shift_caps_switch with more than two keyboard layouts

标签 linux keyboard keyboard-shortcuts user-input keyboard-layout

如果设置此选项,我可以通过分别按下 CapsLock 和 Shift+CapsLock 来切换到第一个 (us) 和第二个 (ru) 布局。
我对这种行为很满意,因为它非常符合人体工程学并且不会分心。

但是,我还需要第三个 (pl) 和第四个 (ua) 布局,并且看起来没有为它们预定义的快捷方式,也没有任何(记录?)选项来启用它。

我不想更改 CapsLock → us,Shift+CapsLock → ru,行为,理想情况下 Ctrl+CapsLock 快捷键应该在辅助(pl 和 ua)布局之间循环。
最好的绑定(bind)方式是什么?

最佳答案

最后,我切换到 sway 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 个键码,然后我将其与其他键的组合绑定(bind)到相应的键盘布局。

此外,xkb_options 被设置为将 RightAlt 绑定(bind)为 ua 上的 compose 键, ruuslv3 符号访问 pl 布局上的键。

CapsLock 功能仍然可以通过 shift:both_capslock 选项访问。

关于linux - XKB_DEFAULT_OPTIONS=grp :shift_caps_switch with more than two keyboard layouts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509216/

相关文章:

android - 如何自定义数字键盘中的空键

c - 以 root 身份执行命令,无需 root 密码或 sudo

java - 如何在 Linux centOS 中安装 JDK

c# - 不能发送单键功能到远程桌面

Android RecyclerView - 在键盘打开时保持最后一个可见项目可见

java - Java 中键盘事件的奇怪行为

android - 如何在 Android Studio 的行尾(快捷方式)开始弯曲的括号

eclipse - 撤消 Eclipse 中关闭的选项卡?

linux - 在 linux 机器上通过 jenkins 运行 selenium 脚本时,firefox 没有启动

mysql脚本变量和max函数