我正在用C ++编写一个软件来控制我的MacBook Pro上的键盘背光,后者运行Arch Linux作为主操作系统和Debian运行的funzies。该程序作为守护程序运行,现在可以打开键盘背光。下一步是让它密切关注计算机何时空闲(基于鼠标和键盘的交互)以及何时空闲一段时间,关闭背光,并且一旦注册了与键盘或鼠标的交互,再次打开背光灯。
我已经用Google搜索了,但是我找不到任何可以检查最后鼠标和/或键盘交互的注册内容。
我知道如何实现这一目标吗? 我相信在任何Linux操作系统的某些部分(可能是X?)中已经存在这样的功能,所以使用它会更好,而不是从头开始编写。
的问候,...
答案 0 :(得分:5)
X服务器中的XScreensaver扩展程序可跟踪键盘和鼠标空闲时间。如果将源代码下载到Psi,则其源树具有文件idle_x11.cpp
,其中包含用于查询空闲时间的逻辑。以此为例。
基本思路是使用XScreenSaverQueryInfo
来读取屏幕保护程序状态信息。
答案 1 :(得分:1)
对于独立于X服务器的解决方案,您可以观察任何鼠标和设备键盘的设备节点并使用计时器。
/dev/input/event*
节点提供通用接口 - 您必须观看与鼠标或键盘对应的任何节点。您需要evdev
内核模块才能使用。
/dev/input/mice
节点提供聚合所有鼠标事件的接口。但是,如果你为/dev/input/event*
节点编写代码,你也可以将它用于鼠标。
请记住,某些X-server驱动程序会获取其设备节点并阻止所有其他应用程序获取事件,因此您可能必须更改其选项或使用基于X的界面。
编辑:
如果要使用/dev/input/event*
设备节点,/usr/include/linux/input.h
头文件包含您需要了解的有关编程接口的大部分内容。根据我的经验,它非常简单易用。在你的情况下更是如此,因为你并不真正关心按下了什么键 - 只是那个键。