在 Linux 上重映射 Caps Lock 键

通过在 GNOME 3 和 Wayland 上重映射键盘,提高您的打字和导航速度,并避免重复性劳损。
52 位读者喜欢这篇文章。

Linux 给我的生活带来了许多改变,但大多数都随着时间的推移融入了我的背景故事,成为了理所当然的事情。Linux 教会了我一个小小的键盘技巧,每次使用它(可能每天 1000 次)都会提醒我,那就是将 Caps Lock 键转换为 Ctrl 键。

我从不使用 Caps Lock 键,但我整天都在使用 Ctrl 键进行复制、粘贴、在 Emacs 中导航,以及 调用 BashGNU Screentmux 操作。Caps Lock 键占据了我键盘上宝贵的空间,迫使真正有用的 Ctrl 键移到了难以触及的底角。

Fingers on a keyboard

这看起来有多痛苦,实际上就有多痛苦。(Seth Kenlon,CC BY-SA 4.0

重映射 Ctrl 键提高了我的打字和导航速度,并且可能使我免于重复性劳损。

消失的控制键案例

系好安全带,这是一堂过山车般的历史课

不幸的是,对于像我这样的 Caps Lock 键位交换者来说,当 GNOME 3 出现时,它几乎移除了更改 Ctrl 键位置的能力。

幸运的是,优秀的 GNOME Tweaks 应用程序带回了这些“丢失的”控制面板。

不幸的是,GNOME 40 没有 GNOME Tweaks 应用程序(目前还没有?)

同样不幸的是,过去在 X11 上有效的旧 xmodmap 技巧在新 Wayland 显示服务器 上已经失效。

在短暂的一段时间里(最多一个下午),我感觉对于讨厌 Caps Lock 键的人来说,情况变得黯淡无光。然后我记起我是一名开源用户,对于像被忽视的 GUI 控制面板这样简单的事情,总有 解决办法。

dconf

GNOME 桌面环境使用 dconf,这是一个存储重要配置选项的数据库。它是 GSettings 的后端,GSettings 是 GNOME 应用程序在需要发现系统偏好设置时与之交互的系统。您可以使用 gsetting 命令查询 dconf 数据库,也可以使用 dconf 命令直接设置 dconf 键值。

GSettings

dconf 数据库不一定是你所说的可发现的。它是一个不起眼的数据库,你不必去考虑它,它包含大量你通常不必直接交互的数据。但是,它确实使用了一个合理的模式,如果你想更好地了解 GNOME 必须管理的所有偏好选项,那么浏览它会很有趣。

您可以使用 list-schemas 子命令列出 dconf 的所有模式。在浏览了数百个模式之后,您可以使用 grep 将您的焦点缩小到一些看起来特别相关的内容,例如 org.gnome.desktop

$ gsettings list-schemas | grep ^org.gnome.desktop
[...]
org.gnome.desktop.background
org.gnome.desktop.privacy
org.gnome.desktop.remote-desktop.vnc
org.gnome.desktop.interface
org.gnome.desktop.default-applications.terminal
org.gnome.desktop.session
org.gnome.desktop.thumbnailers
org.gnome.desktop.app-folders
org.gnome.desktop.notifications
org.gnome.desktop.sound
org.gnome.desktop.lockdown
org.gnome.desktop.default-applications.office

无论是通过手动搜索还是通过 阅读 GSetting 文档,您可能会注意到 org.gnome.desktop.input-sources 模式,该模式有助于定义键盘布局。按照设计,GSetting 模式包含键和值。

使用 dconf 重映射 Caps Lock 键

xkb-options 键包含可选的键盘覆盖设置。要设置此键,请使用 dconf,并将上面模式中的点 (.) 转换为斜杠 (/),因为 dconf 数据库需要这样做。

$ dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:ctrl_modifier']"

我将 caps 设置为 ctrl_modifier,因为我使用 Ctrl 修饰键比任何其他修饰键都多,但 Vim 用户可能更喜欢将其设置为 escape

查看您的设置

更改会立即生效,并在重启后仍然保留。这是您在 GNOME 中定义的偏好设置,因此它会一直有效,直到您更改它为止。

您可以使用 gsettingsdconf 中查看新值。首先,查看可用的键。

$ gsettings list-keys \
org.gnome.desktop.input-sources 
xkb-options
mru-sources
show-all-sources
current
per-window
sources

然后使用 xkb-options 键查看设置。

$ gsettings get \
org.gnome.desktop.input-sources \
xkb-options
['caps:ctrl_modifier']

选项丰富

我使用这个小技巧在我的 GNOME 3.4 系统上设置 Caps Lock 键以及 Compose 键 (compose:ralt)。虽然我相信正在开发 GUI 控件来控制这些选项,但我也必须承认,以编程方式设置它们的能力是我所享受的一种便利。作为以前管理过无法可靠调整桌面设置的系统的管理员,编写脚本来设置我的偏好设置使得设置新的桌面环境变得快速而简单。

GSettings 提供了许多有用的选项,并且文档非常详尽。如果您想更改某些内容,请查看可用的选项。

接下来阅读
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,并且经常同时进行。

2 条评论

我从 90 年代就开始使用 HHKB 键盘,无需重映射。在过去的 10 年里,DIY 键盘开始流行,我已经组装了 3 个 60% 键盘。我使用了 QMK 固件,它可以在键盘的固件级别进行按键分配,并提供可以通过功能键切换的多种布局。DIY 键盘可以是简单的项目,一些 PCB 不需要焊接。机械轴体绝对比我以前使用的 'HHKB Lite' 有了很大的提升。值得庆幸的是,QMK 允许我使用与 HHKB 相同的分配来编程 KB。

非常酷。这是一个我绝对想找时间做的项目。我之前不知道开源的 QMK 固件,非常感谢你的提示!

回复 ,作者:blake lewis

© . All rights reserved.