X11:检测常规鼠标和键盘事件

时间:2016-05-19 10:51:05

标签: c linux keyboard mouse x11

有没有办法检测鼠标是否在X服务器上任何地方被移动或发生了键盘事件?我需要对用户对X11输入设备做任何事情做出反应。

我只是设法使用GTK在我自己的窗口上检测事件。

我感谢每一个信息(它不一定是完整的代码,一个切入点就足够了!)

1 个答案:

答案 0 :(得分:2)

是的,您可以使用Xinput2扩展程序执行此操作。可以找到一个完整但相当小的工具来为光标事件执行此操作here (unclutter-xfixes)。作为免责声明,我是该工具的作者。

可以找到教程表单中的另一个优秀资源here

使用XInput2有多重好处:

  • 无需不断轮询职位(资源有效率)
  • 不会干扰/破坏应用程序,例如在所有窗口上选择鼠标事件。

使用Xinput2轻松获取的是确切的位置(但您可以在需要时查询),但我的理解是您无论如何都不需要它。

加载扩展后,我不会在此处显示,您可以选择所有类似的事件:

   #pragma strict
    var coins = PlayerPrefs.GetInt("coins");

    function OnTriggerEnter2D( other : Collider2D ) {
        coins += 1;
        PlayerPrefs.SetInt("coins", coins); // or however many points you want to give per coin
        Destroy(this.gameObject);
    }

在您的事件队列中,您现在可以查找相应的事件。