Linux 给我的生活带来了许多改变,但大多数都随着时间的推移融入了我的背景故事,成为了理所当然的事情。Linux 教会了我一个小小的键盘技巧,每次使用它(可能每天 1000 次)都会提醒我,那就是将 Caps Lock 键转换为 Ctrl 键。
我从不使用 Caps Lock 键,但我整天都在使用 Ctrl 键进行复制、粘贴、在 Emacs 中导航,以及 调用 Bash、GNU Screen 或 tmux 操作。Caps Lock 键占据了我键盘上宝贵的空间,迫使真正有用的 Ctrl 键移到了难以触及的底角。

这看起来有多痛苦,实际上就有多痛苦。(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 中定义的偏好设置,因此它会一直有效,直到您更改它为止。
您可以使用 gsettings
在 dconf
中查看新值。首先,查看可用的键。
$ 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 提供了许多有用的选项,并且文档非常详尽。如果您想更改某些内容,请查看可用的选项。
2 条评论