有没有办法让 ubuntu 中的任何按钮都被按下,甚至那些在我的 C/C++ 应用程序 window 中没有被按下的按钮?

Is there an way to get any button pressed in ubuntu, even those not pressed inside my C/C++ application window?

我正在开发一个小应用程序,只要我有一段时间没有按下任何键或单击任何鼠标按钮,它就会显示一个警报,只是为了帮助我集中注意力。但是,我找不到在我的应用程序框架外按下按钮的方法。

我的应用程序是用 C 语言为 ubuntu 18.04 开发的,使用 gnome 作为桌面环境。我想如果有任何方法可以工作,那就是使用 X11 库方法,所以我尝试使用它们但没有成功。 XNextEvent 方法仅在我的应用程序获得焦点时捕获事件。

我真的不需要知道按下了什么键或鼠标按钮,它不是键盘记录器。我感兴趣的是是否有来自鼠标或键盘的事件。

show an alert whenever I haven't pressed any key or clicked any mouse button for a while

这与屏幕保护程序的功能非常相似,实现它的最有效方法是使用 X11 Screen Saver Extension. The XScreenSaverQueryInfo 函数将填充一个结构,其中包括自上次用户输入以来的毫秒数(saver_info.idle).