Использование библиотек C из расширения Gnome-Shell - PullRequest
4 голосов
/ 24 октября 2011

Я хочу написать расширение Gnome-Shell, которое может сказать, как долго сеанс не получал никакого пользовательского ввода. Я знаю, что вызов XScreenSaverQueryInfo даст мне эту информацию, но я не могу найти способ вызвать ее из моего расширения gjs. Что мне нужно сделать, чтобы заставить это работать?

1 Ответ

2 голосов
/ 03 октября 2017

Вероятно, самый простой способ сделать это - использовать 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 для вызова метода с вашего внутреннего номера. Вот пример .

...