
对于许多(我们不妨说)“相当长一段时间”的计算机用户来说,自从第一批 PC 键盘下线后不久,Ctrl 和 Caps Lock 键的位置就放错了。 对我来说,正确的定位出现在这张 1995 年复古 Sun 工作站键盘的图片中。(请原谅图像的模糊;它是在弱光下用 Minox 间谍相机拍摄的。)
如果您有兴趣,可以阅读关于 Ctrl 键位置的历史。 我不打算讨论将 Ctrl 键放在 “a” 键旁边与 Shift 键下方的各种理由; 我不打算评论 Caps Lock 键的整体无用性(哎呀); 我也不打算与那些主张用手掌根部激活 Ctrl 键的人争论,即使在某些笔记本电脑键盘上,按键低于腕托水平面时,这样做是不可能的(哎呀)。
相反,我将假设我不是唯一一个喜欢 Ctrl 键在 “a” 旁边的人,并描述如何利用 Linux 带来的出色灵活性来交换各种桌面环境上的 Ctrl 和 Caps Lock 键。 请注意,这类建议似乎有保质期限制,因为用于调整桌面设置的工具经常更改。 但我希望这能为您提供一个良好的起点。
使用 GNOME 3
GNOME 3 桌面环境用户可以使用 Tweaks 工具来交换 Caps Lock 和 Ctrl 键,如下所示。

操作方法如下
- 从您的发行版的存储库中安装 Tweaks 工具。
- 启动 Tweaks 应用程序。
- 从左侧菜单中选择 “键盘和鼠标”。
- 单击 “附加布局选项”。
- 在打开的窗口中单击 “Ctrl 位置”,然后选择 “交换 Ctrl 和 Caps Lock”。
就是这样! 顺便说一下,您可以使用 Tweaks 工具做很多很酷的事情。 例如,我将我的右 Ctrl 键设置为组合键,这使我可以使用键盘快捷键输入各种字符,例如 ç、é、ô 和 ñ,以及按键组合 Compose+c+逗号; Compose+e+右引号; Compose+o+抑扬符; 和 Compose+n+波浪号。
使用 KDE
我不使用 KDE,但是我同事 Seth Kenlon 关于 将改变您生活的 KDE 微调技巧 这篇文章中的第 5 项将向您展示如何重新映射您的按键。
使用 Xfce
据我所知,Xfce 桌面环境没有方便的工具来管理这些类型的设置。 但是,setxkbmap 命令的 ctrl:swapcaps 选项将帮助您进行这些更改。 这种类型的修改分为两个部分
- 弄清楚命令的用法;
- 弄清楚在哪里调用命令,以便在桌面启动时激活它。
第一部分非常简单:命令是
/usr/bin/setxkbmap -option "ctrl:nocaps"
值得在终端窗口中执行此命令,以确保结果符合您的预期。
假设它有效,您应该在哪里调用该命令? 这需要一些实验; 一种可能性是在用户主目录中的 .profile 文件中。 另一种选择是将命令添加到 Xfce 中的自动启动工具(在设置管理器中查找 “会话和启动”)。
另一种可能性是在 /etc/default/keyboard 文件中使用相同的选项,最终可能如下所示
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:swapcaps"
BACKSPACE="guess"
请注意,这种更改将影响所有用户,因此如果您与他人共享计算机,请准备好进行一些解释。 此外,系统更新可能会覆盖此文件,因此如果您的设置停止工作,您需要再次编辑它。 将相同的信息放在用户主目录中的 .keyboard 文件中可能会代表用户完成相同的任务。
最后,请注意,这些类型的更改需要您重新启动 Xfce(除非在终端窗口中的命令行上运行命令,但这不会在会话结束后保留)。
使用 LXQt 和其他桌面环境
我没有尝试过 LXQt,但如果我的记忆从 LXDE 中没有出错,我会尝试上面用于 Xfce 的相同方法。 我还预计 Xfce 方法可以用于其他 Linux 桌面环境,但是,当然,您最喜欢的搜索引擎永远是您的朋友。
控制台
我没有尝试过这个,因为我很少有机会与控制台交互(在服务器上或当您的窗口系统无法正常启动时看到的内容)。 上面介绍的方法以人们希望的方式影响终端窗口,即与其他应用程序一致。
但是,如果 /etc/default/keyboard 或 ~/.keyboard 文件已被编辑(如上所述),则实用程序 setupcon 旨在更改控制台键盘设置,使其功能相同。 这篇 StackExchange 文章,另一篇,以及 第三篇 给出了一些关于如何从这两个文件中进行这些更改的想法。 第三篇文章还讨论了使用 dumpkeys 和 loadkeys。 阅读 setupcon 手册页 也很有价值 — 它简短扼要,并且结合 StackExchange 文章中的评论,应该足以找到解决方案。
最后,值得在此强调 StackExchange 文章中提到的观点 - 配置控制台与配置终端窗口不同; 后者通过先前描述的桌面管理器进行配置。
当所有其他方法都失败时
setxkbmap、xkeyboard-config、keyboard、console-setup 和 setupcon 的手册页都是有用的参考资料。 或者,如果您不喜欢阅读手册页,那么可以参考 这篇很棒的文章。
12 条评论