当我的程序在前台时,覆盖gnome中的全局热键Alt-F2

时间:2014-03-18 18:25:11

标签: linux x11

我的问题与此类似:http://forum.winehq.org/viewtopic.php?t=14451

Gnome似乎为Alt-F2调用了XGrabKey(),但它也是我程序中的热键。如何使我的程序接收此事件而不是Gnome shell,当它在前台时?

如果我致电XGrabKey(),它将返回BadAccess。如果我拨打XGrabKeyboard(),那么我的程序将会压制所有其他全局热键。

1 个答案:

答案 0 :(得分:2)

这是不可能的。你没有收到这个活动。根窗口接收按键并由窗口管理器拥有。窗口管理器然后委托按键。全局快捷键优先。

一个邪恶的黑客可能是在程序运行时改变Gnome的全局快捷方式。用户会烧毁你的房子。

另一种选择是,如你所提到的那样抓住键盘。然后您将收到事件而不是根窗口。你可以通过XTest扩展来将你不感兴趣的按键(其他全局快捷键)传递给根窗口。用户会烧毁你的房子。

如果您更改快捷方式,用户可能会非常高兴。