![如何使全局键盘快捷键在所有应用程序中发挥作用?](https://linux22.com/image/1186261/%E5%A6%82%E4%BD%95%E4%BD%BF%E5%85%A8%E5%B1%80%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%9C%A8%E6%89%80%E6%9C%89%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%8F%91%E6%8C%A5%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我在具有德式键盘布局的 Thinkpad T14s 上使用 Ubuntu 21.10。应用程序 1password 有一个全局快捷方式可以打开密码管理器Ctrl + Shift + Space。
当大多数应用程序具有焦点时,此快捷方式有效(例如,在使用 Slack 或 Google Chrome 时有效),但在其他应用程序(例如 Firefox 或终端)中无效(意味着什么都没有发生)。
我已经尝试检查快捷方式不起作用的应用程序是否确实通过该绑定拦截自己的快捷方式,但至少对于终端而言情况并非如此。
有谁知道这是什么原因造成的?
答案1
您使用的是 Ubuntu 21.10。我强烈怀疑您还运行了默认的 Wayland 会话。请在“设置”-“关于”屏幕上检查。
Wayland 是 Xorg 显示服务器的替代品,传统上用于在屏幕上绘制图形元素。它非常注重安全性。其中一点是应用程序不允许彼此了解。应用程序不允许抓取桌面范围内的组合键。
为了支持旧版应用程序,Wayland 附带了 xwayland。xwayland 模拟 Xorg 服务器。当 Google Chrome 和 Slack 指示它们在 xwayland 上运行时,您的快捷方式有效。Firefox 和终端在 Wayland 上本机运行,因此它们看不到此快捷方式。
目前,唯一可以拥有全局快捷键的方法是应用程序公开某种使用命令行实现所需功能的方法。请查看文档。例如,Albert 启动器支持命令行选项toggle
。在按下快捷键时始终显示该启动器的唯一方法是使用命令在“设置”-“键盘”中定义该快捷键albert toggle
。在程序内部设置快捷键的传统方法不再适用于在 Wayland 上本机运行的应用程序。
绕过 Wayland 当前限制的一种解决方法是将其留在后面并返回 Xorg 会话。注销。在登录屏幕上,将光标放在密码字段中,单击齿轮并选择“Ubuntu on Xorg”,然后重新登录。