Come rilevare eventi come schermata di blocco / sblocco, inserire / tornare alla sospensione e monitorare lo spegnimento

4

Mi chiedo se ci sia un modo per rilevare eventi a livello di sistema sotto Linux come:

  • sessione utente non bloccata
  • utente accede / esce
  • macchina inviata per sospendere
  • lo screensaver si accende
  • e il monitor si spegne per inattività

Ho bisogno di questo per un progetto Qt in cui reagisco programmaticamente a tali eventi, ma sono incerto su come e dove iniziare. Forse c'è una API che non so ancora.

Qualche suggerimento? Gradirei qualsiasi aiuto!

    
posta user3305036 17.02.2014 - 09:16

2 risposte

1
gnome-screensaver-command

ti fornirà informazioni sugli eventi di blocco dello schermo

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

se il comando restituisce qualsiasi risultato, allora lo schermo è bloccato. Puoi bloccare lo schermo con gnome-screensaver-command -l

Non ci sono informazioni su sospendere lo stato

    
risposta data RahulArackal 19.03.2014 - 12:39
0

Puoi utilizzare l'API dbus per tracciare queste informazioni.

Guarda alcuni esempi che usano il comando dbus-monitor qui: Modo per misurare l'utilizzo del computer tramite lo screen saver attivo / non attivo? - Chiedi Ubuntu .

per esempio:.

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

Questo può anche essere fatto direttamente da c ++, in un programma python, ecc., usando direttamente l'API dbus.

    
risposta data nealmcb 21.01.2015 - 00:57

Leggi altre domande sui tag