Como detectar eventos como a tela de bloqueio / desbloqueio, entrar / retornar suspender e monitorar o desligamento

4

Eu estou querendo saber se existe alguma maneira de detectar eventos em todo o sistema no Linux, como:

  • sessão do usuário un / locked
  • usuário efetua login / logout
  • máquina enviada para suspender
  • protetor de tela continua
  • e o monitor desliga devido a inatividade

Eu preciso disso para um projeto Qt onde eu programaticamente reajo a tais eventos, mas não tenho certeza de como e onde começar. Talvez haja uma API que eu ainda não conheça.

Alguma dica? Eu apreciaria qualquer ajuda!

    
por user3305036 17.02.2014 / 09:16

2 respostas

1

gnome-screensaver-command

fornecerá informações sobre os eventos de bloqueio de tela

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

se o comando retornar algum resultado, a tela será bloqueada. Você pode bloquear a tela com gnome-screensaver-command -l

Não tem informações sobre o estado de suspensão

    
por RahulArackal 19.03.2014 / 12:39
0

Você pode usar a API do dbus para rastrear essas informações.

Veja alguns exemplos que usam o comando dbus-monitor aqui: Forma de medir o uso do computador através do protetor de tela ativo / não ativo? - Pergunte ao Ubuntu .

Por exemplo:

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

Isso também pode ser feito diretamente do c ++, em um programa python, etc., usando diretamente a API do dbus.

    
por nealmcb 21.01.2015 / 00:57