如何重新映射 Caps Lock 和 Ctrl 键?

114 vim keyboard

我想重新映射我的键,使其Ctrl表现为Caps Lock键,反之亦然。另外,如果可能的话,我希望这些设置仅在当前登录的用户中可用。我怎样才能做到这一点?

我是 vim 用户,与使用这台机器的其他人不同,所以我只想为我的帐户设置这些设置。

Jam*_*dge 98

13.10+:

安装和使用gnome-tweak-tool> Keyboard & Mouse> Keyboard> Additional Layout Options> Caps Lock behavior

13.10 之前:

打开“键盘首选项”对话框 ( System -> Preferences -> Keyboard)。在布局选项卡上,单击Options...按钮。展开该Ctrl key position部分并选择Swap Ctrl and Caps Lock

每次登录时都应应用这些设置,并且只会影响您的用户帐户。

  • 对于 Ubuntu 13.10,您需要使用 gnome-tweak-tool。 (4认同)
  • 这个选项在 Ubuntu Saucy 中已经消失了。我不知道如何解释这一点,但它根本不存在。键盘首选项没有“布局选项卡”,但有一个“布局设置”按钮,当我单击它时,它会将我带到“区域和语言”面板的“输入源”选项卡,这很神秘地缺少任何类型的“选项”按钮。那里唯一的按钮会打开一个虚拟屏幕键盘,向我显示我损坏的键盘布局,而无法更改哪些键的行为方式。 (3认同)

Jor*_*tro 83

这是一种无需安装额外软件即可完成的方法:

setxkbmap -layout us -option ctrl:nocaps
Run Code Online (Sandbox Code Playgroud)

来源:

  • @nic您还需要更改文件`sudo vi /etc/default/keyboard`并更改`XKBOPTIONS="ctrl:nocaps"`。之后运行 Jorge 的命令,但作为 `setxkbmap -option ctrl:nocaps` 这样它就不会改变你的默认键盘布局。 (12认同)
  • 这在重新启动后无法生存。我怎样才能使它永久化?我宁愿不把它放在启动脚本中(例如 .bashrc)。 (4认同)

Pie*_*amy 70

如果您使用 GNOME shell,以图形方式执行此操作的最佳方法之一是安装Gnome Tweak Tool

sudo apt-get install gnome-tweak-tool

对于 3.30.0 及更高版本:

  • 打开调整工具并单击左侧菜单栏中的键盘和鼠标部分。
  • 单击左侧的附加布局选项按钮。
  • Caps Lock 行为下,选择Caps Lock 也是一个 Ctrl

对于旧版本:

  • 打开调整工具并单击左栏中的输入部分。
  • 您现在应该会在左侧看到一行Caps Lock 键行为
  • 在下拉列表中选择Make Caps Lock 一个额外的 Ctrl 键而不是Disabled,你应该很好。

享受您的新Ctrl钥匙!

  • 更新: gnome-tweak-tool 只能在 gnome shell 中工作 (2认同)
  • 我的左侧栏中没有“打字”部分:只有桌面、字体、外壳、外壳扩展、主题、Windows。 (2认同)
  • 请注意 gnome-tweak-tool 中要交换的选项位于“Ctrl 键位置”下,而不是“Caps Lock 键行为”下。 (2认同)

小智 53

打开以下内容进行编辑:

sudo vi /etc/default/keyboard
Run Code Online (Sandbox Code Playgroud)

并编辑 XKBOPTIONS="ctrl:swapcaps"

然后,重新配置:

sudo dpkg-reconfigure keyboard-configuration
Run Code Online (Sandbox Code Playgroud)

或者

/usr/bin/setxkbmap -option "ctrl:swapcaps"
Run Code Online (Sandbox Code Playgroud)

  • 您有 3 个步骤(1、2、3)。你的意思是 [(1 and 2) or 3] or [1 and (2 or 3)]? (3认同)

小智 26

永久改变行为:

  1. dconf-editor

  2. 选择 org.gnome.desktop.input-sources

  3. 更改xkb-options['ctrl:nocaps'](或将其添加到任何现有选项)

或在命令行上(警告 - 这会覆盖您现有的设置!):

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

  • dconf 设置会立即应用并且是持久的,因此将其放在 ~/.profile 中是没有意义的,并且不需要重新启动。此特定设置仅适用于 Gnome/Unity,不适用于 Kubuntu 中使用的 KDE。 (3认同)

Ale*_*lov 9

这是通过 XKB 手动(无需其他工具)完成的方法,XKB 是最近 Ubuntu 的默认密钥管理器。修改/usr/share/X11/xkb/symbols/pc,部分xkb_symbols "pc105"

//key <CAPS> {  [ Caps_Lock     ]   };
//key <LCTL> {  [ Control_L     ]   };
key <CAPS> {    [ Control_L ]   };
key <LCTL> {    [ Caps_Lock     ]   };
Run Code Online (Sandbox Code Playgroud)

登录/注销或重新启动。请参阅此处了解更多详情。

或者,您可以在这些按钮发出的键码级别进行交换。Modify /usr/share/X11/xkb/keycodes/evdev

<CAPS> = 64; //66;
<LCTL> = 66; //64
Run Code Online (Sandbox Code Playgroud)

您需要sudo rm -rf /var/lib/xkb/*应用更改。

  • 这是一个很好的答案,因为它更改了较低级别的地图,其他答案在连接不同的键盘或蓝牙键盘时会出现问题。这个不遭受形式那 (2认同)
  • 有些这对我来说不起作用。这两种选择都不起作用。CAPs 仍然是大写字母,ctrl 不再起作用。 (2认同)

小智 7

接受的答案令人困惑,因为 gnome-tweak-tools 没有显示任何“打字”部分。

相反,单击“键盘和鼠标”部分,然后选择“其他布局选项”。在那里,您将看到“大写锁定行为”,它允许将大写锁定转换为不同的键。