ubuntu 22.04+(gnome桌面)的快捷键自定义必须通过「设置 → 键盘 → 快捷键 → 自定义快捷键」添加,不能靠改配置文件或第三方工具绕过gnome设置后端,否则开机不生效或被gnome shell覆盖。

直接结论:Ubuntu 22.04+(GNOME桌面)的快捷键自定义必须通过「设置 → 键盘 → 快捷键 → 自定义快捷键」添加,不能靠改配置文件或第三方工具绕过 GNOME 设置后端 —— 否则开机不生效、或被 GNOME Shell 覆盖。
添加自定义快捷键必须用系统设置界面
GNOME 桌面从 Ubuntu 20.04 起已弃用 dconf-editor 直接写 org.gnome.settings-daemon.plugins.media-keys.custom-keybindings 的方式。手动编辑该路径下 keybinding 数组,重启后大概率丢失,因为 GNOME Settings 服务会重置它。
- 打开「设置」→「键盘」→ 滚动到底部,点击「+」按钮
- 名称填
启动 VS Code这类可读标识(不影响功能,但建议别用空格或特殊符号) - 命令填完整可执行路径或 shell 命令,例如:
code --new-window或/usr/bin/gnome-terminal - 点击「设置快捷键」,然后立刻按你想绑定的组合键(如
Ctrl+Alt+T),不要点其他地方 - 如果提示“已被占用”,说明该组合已被系统或应用占用,换一组(
Ctrl+Alt+Shift+T更安全)
为什么 gsettings set 失效?
很多人试过用 gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybindings 手动写入数组,但发现重启后没反应。这是因为 GNOME Settings 服务在登录时会校验每个自定义项是否关联了有效的 name、command 和 binding —— 缺一不可,且必须通过 Settings UI 触发一次「保存动作」才会写入底层 dconf 并注册监听。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 正确做法是:先用 UI 添加一项,再用
gsettings get查看生成的路径,例如:['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/'] - 之后才能用
gsettings set修改该路径下的command或binding,但不能增删条目 - 直接写
custom-keybindings数组本身,等于跳过校验,GNOME 不认
命令必须能被 shell 正确解析
填在「命令」栏里的内容不是 bash 脚本,而是被 GNOME 作为 execv() 参数直接调用的。所以:
- 支持绝对路径:
/usr/bin/firefox --private-window - 支持带参数的命令,但不能含管道
|、重定向>、变量$HOME—— 这些需要 shell 解析,而 GNOME 不启动 shell - 想用复杂逻辑?写个脚本,例如
/home/you/bin/open-terminal.sh,然后在命令栏填这个路径 - 脚本第一行必须是
#!/bin/bash,且要有执行权限:chmod +x /home/you/bin/open-terminal.sh
容易忽略的兼容性陷阱
某些快捷键组合在 GNOME 下根本不会触发,不是你设错了,而是被底层机制拦截:
-
Ctrl+Alt+L和Super+L是硬编码锁屏键,无法覆盖(即使你设了同组合,UI 会允许,但实际按下仍锁屏) -
Alt+F2是运行命令框专用键,任何自定义都会失效 -
Super+数字默认绑定到工作区或应用固定位,除非先在「快捷键」里禁用对应项,否则你的自定义不会响应 - 笔记本键盘上
Fn键组合(如Fn+F10)通常由固件处理,GNOME 根本收不到事件
真正可靠的组合是 Ctrl+Alt+Shift+字母 或 Super+Alt+字母,冲突概率最低。设完务必登出再登录验证 —— 单纯重启 GNOME Shell(Alt+F2 输入 r)不足以加载新快捷键。










