You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ubuntu 22.04 LTS中如何管理键盘快捷键的应用优先级

Ubuntu 22.04 LTS中如何管理键盘快捷键的应用优先级

我完全懂这种快捷键冲突的糟心感——明明在程序A里操作,按Ctrl+E却触发了程序B的功能,太打断工作节奏了!针对Ubuntu 22.04 LTS的情况,我整理了几个实用的解决方法,帮你搞定快捷键优先级的问题:

方法一:先排查并调整系统全局快捷键

很多时候冲突根源是系统全局快捷键和应用快捷键撞了。你可以这么操作:

  • 打开系统「设置」,找到「键盘」选项,进入「快捷键」页面
  • 搜索有没有绑定了Ctrl+E的全局功能(比如可能是“打开搜索”或其他系统操作)
  • 如果找到,点击对应的快捷键,按Backspace取消绑定,或者改成其他不冲突的组合键。这样应用自身的快捷键就能正常触发了。

方法二:直接修改冲突应用的快捷键

如果全局快捷键没问题,那就是两个应用自己的快捷键撞了,这时候给其中一个应用换个快捷键就行:

  • 对于GNOME自带的GTK应用(比如文本编辑器、文件管理器):打开应用的「设置」,找到「键盘快捷键」板块,找到Ctrl+E对应的功能,改成你顺手的其他组合键
  • 第三方应用(比如Qt程序、浏览器插件):通常在应用的「偏好设置」或「选项」里能找到“快捷键”/“热键”设置,进去调整即可。

方法三:用进阶工具实现窗口上下文的快捷键优先级(适合复杂场景)

如果上面的方法都解决不了(比如某个应用强制抢占快捷键),可以用xbindkeyswmctrl实现「当前窗口是A程序时,只触发A的快捷键」:

  1. 先安装工具:打开终端,输入sudo apt install xbindkeys wmctrl xdotool并回车
  2. 创建配置文件:touch ~/.xbindkeysrc
  3. 编辑配置文件:用文本编辑器打开~/.xbindkeysrc,添加以下内容(记得替换成你的程序信息):
    # 当当前窗口是ProgramA时,触发它的Ctrl+E动作
    "wmctrl -x -a ProgramA && xdotool key Ctrl+E"
      control + e
    
    这里的ProgramA是A程序的窗口类名,你可以用wmctrl -lx命令在终端查看所有窗口的类名,找到对应程序的那一行就行。
  4. 生效配置:在终端输入xbindkeys重启服务,或者注销再登录。

备注:内容来源于stack exchange,提问作者ivarejao

火山引擎 最新活动