Вероятно, самый простой способ сделать это - использовать D-Bus для вызова метода org.gnome.Mutter.IdleMonitor.GetIdletime
на пути /org/gnome/Mutter/IdleMonitor/Core
org.gnome.Shell
. Это даст вам время в миллисекундах, для которого оболочка не видела никаких пользовательских данных.
Вы можете проверить это в командной строке, используя:
while true; do
gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Mutter/IdleMonitor/Core \
--method org.gnome.Mutter.IdleMonitor.GetIdletime
done
Вы можете использовать поддержку GIO D-Bus от GJS для вызова метода с вашего внутреннего номера. Вот пример .