如何在没有 xmodmap/XKBOPTIONS 的情况下进行大写锁定控制?

Léo*_* 준영 4 gnome keyboard shortcut-keys dvorak 16.04

xmodmap已折旧并且无法与 一起使用gsettings在这里执行此操作会禁用我的xmodmapsudo vi /etc/default/keyboard>XKBOPTIONS="ctrl:nocaps"sudo setxkbmap dvorak '' ctrl:nocaps

gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt']"
Run Code Online (Sandbox Code Playgroud)

我想通过 来将大写锁定更改为 Ctrl gsettings。但是,我在设置中没有找到这种可能性。Keyboard我认为这个改变可以通过>> Shortcuts>Custom Shortcuts来实现+,但我不确定如何用 gnome 来完成它。


如何通过 gnome 设置将大写锁定更改为 Ctrl?

Flo*_*sch 6

添加'caps:ctrl_modifier'到 gsettings 中的值org.gnome.desktop.input-sources xkb-options,例如

 gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt', 'caps:ctrl_modifier']"
Run Code Online (Sandbox Code Playgroud)

您可以使用

gsettings set org.gnome.desktop.input-sources xkb-options "$(gsettings get org.gnome.desktop.input-sources xkb-options | sed "s/]/, 'caps:ctrl_modifier']/")"
Run Code Online (Sandbox Code Playgroud)

附加到 的当前值xkb-options您可以在xkeyboard-config 联机帮助页的“选项”部分找到更多可能的选项

要更改键盘布局,您需要设置 的值org.gnome.desktop.input-sources sources,例如

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+dvorak')]"
Run Code Online (Sandbox Code Playgroud)

如果您只想使用德沃夏克或

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+dvorak'), ('xkb', 'us')]"
Run Code Online (Sandbox Code Playgroud)

如果您希望能够在 Dvorak 和标准布局之间切换。

有关更多布局,请参阅xkeyboard-config 联机帮助页的“布局”部分。您需要替换父母,以便egus(dvorak)变成us+dvorak

gsettings 中的 XKB 设置由 GNOME 在启动时加载,并覆盖任何以前的设置。要使用,setxkbmap您需要确保setxkbmap在应用 GNOME 设置后运行。我不知道该怎么做。

  • 运行“man xkeyboard-config”会给你一个巨大的映射可能性列表。也可以在线获取[此处](https://www.mankier.com/7/xkeyboard-config#Options-Caps_Lock_key_behavior) (2认同)
  • @Masi我已将其添加到我的答案中。 (2认同)