找出哪个应用程序侦听特定的键绑定?

kei*_*iki 15 keyboard-shortcuts x11

是否有应用程序知道哪个密钥受哪个进程绑定,因此不能在另一个应用程序中使用?

Ant*_*hon -3

键绑定的应用程序之间不存在竞争。要么您的 X 服务器捕获某些内容(在大多数情况下是您的桌面)并在某个键上做出反应(例如按音量增大键),要么该键被传递到当前应用程序(即具有焦点的应用程序)。这与我记忆中的 Windows 有所不同,在 Windows 中,您可以使用热键来访问没有焦点的应用程序。

因此,您不需要知道哪个Alt+somekey已经被其他应用程序使用,您只需要知道您的桌面是否已经捕获它并对其执行某些操作。

如果应用程序需要了解键盘事件,例如按媒体键盘上的前进键,则桌面应捕获该事件并通知应用程序。

  • 应用程序之间存在竞争。他们无法“注册”同一个热键。X 服务器不捕获任何内容:它生成事件。X11 术语中不存在“桌面”:它只是一堆应用程序,其中一些是 X 客户端。对于一些 X 服务器内部异常(例如终止 X 服务器),按键事件将传递到具有键盘焦点的程序_除非该键上存在被动键盘抓取_! - 最重要的部分:如果程序想要了解键_“桌面应用程序”不应“捕获”该事件,而应让程序“捕获”它!_ (13认同)
  • 您的答案对于应用程序在具有焦点时使用的键是正确的,但对于应用程序抓取的键则不然(然后无论焦点如何都会接收它)。 (3认同)