Linux 按键修改
实际上我就只把 Caps 映射为 Ctrl,方式如下:
xmodmap -e 'keycode 66 = Control_L'
xmodmap -e 'clear Lock'
xmodmap -e 'add Control = Control_L'
如果想永久更改,有两种方式:
1. 第一种就是在开机执行的文件(比如 .xinitrc
)中加入上面的命令。
2. 第二种是先将现在的方案写入文件 xmodmap -pke > .Xmodmap
,然后在开机执行的文件中加入命令 xmodmap .Xmodmap
。
Ubuntu 22.04 后的方案
问 GPT 也是给出上面的方案。但 Ubuntu 22.04 及其之后上面就失灵了,原因是 XWindows 默认从 Xorg 变成了 Wayland,所以 Xmodmap 不在使用。
解决方案,直接问 GPT 呗,告诉它这个原因,然后它会告诉正确的答案。我觉得这也是现在这个时代下博客或者笔记的一些意义。不是以前,笔记真的就是知识库,现在这个时代,GPT 能回答我们很多了,但有的时候往往就差那么一两句提示,而这就是现代这种笔记应该做的事情。
留存一下我当时解决的问答,最后用了方法二。
ubuntu24.04不可以,好像是因为现在用的是Wayland而不是Xorg了
对的,你说得完全正确:在 **Ubuntu 24.04** 默认使用的是 **Wayland**,而不是 Xorg。而 `xmodmap` 仅适用于 Xorg,所以在 Wayland 下就不起作用了。
但别急,咱可以用新的方法来映射 Caps Lock 为 Ctrl。在 Wayland(特别是 GNOME 桌面)下推荐用以下方法:
---
## ✅ 方法一:使用 GNOME 设置(图形界面)
1\. 打开「设置」→「键盘」。
2\. 下拉找到「键盘快捷键」,点击「查看和自定义快捷键」。
3\. 点击右上角的「三点菜单」 → 选择「输入源」。
4\. 找到「Caps Lock 行为」,设置为:
```
将 Caps Lock 键作为额外的 Ctrl 键
```
(原文可能是英文:“Caps Lock as Ctrl”)
---
## 🧠 方法二:使用 `gsettings` 命令(终端设置)
如果你想直接用命令行快速设置:
```bash
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"
```
这个命令会:
- 移除 Caps Lock 功能
- 把 Caps Lock 键变成一个 **左 Ctrl**
如果你已经有其他键位选项,也可以像这样加进去:
```bash
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps', 'another:option']"
```
---
## 🔄 恢复默认设置(可选)
如果你想恢复 Caps Lock 的默认行为:
```bash
gsettings reset org.gnome.desktop.input-sources xkb-options
```
---
需要我帮你写一个脚本或者 UDEV 规则来处理更复杂的键盘映射,也可以!你现在是用 GNOME 桌面吗?还是别的桌面环境(比如 KDE、Sway、Hyprland)?这样我可以给你更准的建议。