问题描述
我是 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 键设置为空列表来再次禁用该行为。