在基于 X-Server 的系统上,实用程序 xprintidle 将返回用户空闲的毫秒数。 Wayland 下是否存在类似的功能?
我正在尝试编写一个小程序来记录全天的应用程序焦点,作为衡量我如何使用计算机、生产力等的一种方式。
我不希望程序在机器空闲时记录活动。使用 xprintidle 可以轻松确定用户在 X-Server 会话中空闲的时间,但是该实用程序似乎没有维护,并且在 Wayland 下不起作用。
发行版似乎正在转向 Wayland,例如即将推出的 Ubuntu 17.10 默认使用 Wayland,因此 xprintidle 不再是一个可行的解决方案。
Wayland 是否有一种机制可以确定用户是否空闲,缺少诸如不断轮询键盘和鼠标活动之类的低效机制?
答案1
不确定是否有通用方法,但对于 gnome 系统,您可以使用此 dbus 调用:
dbus-send --print-reply --dest=org.gnome.Mutter.IdleMonitor /org/gnome/Mutter/IdleMonitor/Core org.gnome.Mutter.IdleMonitor.GetIdletime