繁体   English   中英

如何为我的Linux游戏禁用gnome窗口管理器键盘快捷键?

[英]How can I disable gnome window manager keyboard shortcuts for my linux game?

我正在将游戏移植到Linux。 这是一个复杂的游戏,具有许多键盘和鼠标快捷键,可以进行更好的控制。 快捷方式之一是利用alt和鼠标右键单击,这与某些窗口管理器功能冲突-即在某些计算机上显示上下文菜单。 我尝试通过收集“ gsettings get org.gnome.desktop.wm.preferences mouse-button-modifier”的输出在运行时禁用此功能,并在检测到冲突时对其进行更改,但这非常麻烦,并且仅在少数情况下有效案例。 有人知道是否有更好,更可靠的方法来执行此操作-最好是在我的游戏窗口处于活动状态时禁用所有快捷方式的方法。

您可以使用一些X Server代码来抓住键盘并将其锁定到应用程序窗口。 这样可以防止其他任何东西拦截键盘。 参见例如: https : //tronche.com/gui/x/xlib/input/XGrabKeyboard.html

采取这种笨拙方法的缺点是,它会破坏诸如Alt + Tab退出全屏窗口的功能。

LWN上有一篇文章,介绍了Valve使Steam在Linux中工作的所有技巧( http://lwn.net/Articles/611969/)Valve甚至在某些地方使用LD_PRELOAD。 他们必须实现特殊的覆盖,以允许alt-tab之类的东西正常工作。 您也许可以查看Steam客户端的源代码,以了解他们是如何做到的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM