当前位置: 首页>>技术教程>>正文


gnome – 如何以编程方式交换 caps lock 和 esc 键?

, ,

问题描述

我是 Vim 的重度用户,当我开始进行干净的 ubuntu 安装时,我做的第一件事就是交换大写锁定和 esc 键,以减少键盘上的手部移动。

到目前为止,我一直通过键盘配置对话框来完成此操作,但我现在正在编写一组脚本,这些脚本将按照我喜欢的方式设置 Ubuntu,但我无法找到可编写脚本或可编程的方法来更改此配置项。

我不是在寻找在 gnome 本身之外的任何其他级别交换按键的选项,所以我正在寻找一种方法来编写此更改的脚本,并让它出现在我曾经使用的键盘配置中,如果我决定的话将来手动恢复它。

最佳办法

您可以通过 GUI 打开 Keyboard Preferences 控制面板(在 System -> Preferences 下)并选择 Layout 选项卡来执行此操作。单击 Options... 按钮打开布局选项对话框。展开 Caps Lock key behaviour 部分并选择 Swap ESC and Caps Lock

有几种方法可以编写此类事情的脚本。

直接通过Xkb

我们可以直接通过以下方式进行更改:

setxkbmap -option caps:swapescape

您可以禁用所有当前布局选项(这会将大写锁定返回到其默认行为):

setxkbmap -option ''

通过 GConf

键盘首选项控制面板通过 gconf 存储其配置,而布局实际上由 gnome-settings-daemon 应用。因此,您可以通过自己更新gconf来使gnome-settings-daemon调整布局。

本例中的相关设置似乎是 /desktop/gnome/peripherals/keyboard/kbd/options 。因此,您可以设置该选项:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

在上面,<tab> 应该是一个文本制表符而不是空格。您可以通过将 gconf 键设置为空列表来再次禁用该行为。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14209.html,未经允许,请勿转载。