Как обнаружить такие события, как блокировка / разблокировка экрана, ввод / возврат приостановки и отключение монитора

Мне интересно, есть ли какой-нибудь способ обнаружить общесистемные события в Linux, такие как:

  • пользователь un / locked сеанс
  • пользователь входит / выходит
  • ] 112] машина, отправленная на приостановку
  • , заставка включается
  • , и монитор отключается из-за неактивности

Мне это нужно для проекта Qt, где я программно реагирую на такие события, но я не уверен, как и с чего начать. Может быть, есть API, который я еще не знаю.

Есть намеки? Буду признателен за любую помощь!

4
задан 17 February 2014 в 12:16

2 ответа

gnome-screensaver-command

предоставит вам информацию о событиях блокировки экрана

gnome-screensaver-command -q | grep "is active"

, если команда возвращает какой-либо результат, экран блокируется. Вы можете заблокировать экран с помощью gnome-screensaver-command -l

Не иметь никакой информации о состоянии приостановки

0
ответ дан 17 February 2014 в 12:16

Вы можете использовать dbus API для отслеживания этой информации.

См. Некоторые примеры, в которых используется команда dbus-monitor: Как измерить использование компьютера с помощью экранной заставки в активное / неактивное время? - Спросите Ubuntu .

Например:

dbus-monitor 'path=/org/gnome/ScreenSaver, member=ActiveChanged'

Это также можно сделать напрямую из c ++, в программе на python и т. Д., Используя напрямую dbus API.

0
ответ дан 17 February 2014 в 12:16

Другие вопросы по тегам:

Похожие вопросы: