O script a seguir gravará o tempo de bloqueio / desbloqueio em um arquivo time_xprofileem sua casa.
#!/bin/bash
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
do read X
if echo $X | grep "boolean true" &> /dev/null; then
echo "locking at $(date)" >> $HOME/time_xprofile
elif echo $X | grep "boolean false" &> /dev/null; then
echo "unlocking at $(date)" >> $HOME/time_xprofile
fi
done )
salve o script. Dê permissão de execução.
chmod +x script.sh
Como executar
./script.sh &
Nota O script deve ser executado em segundo plano. Não o mate. Se você ativar / desativar o bloqueio de tela enquanto o script estiver em execução em segundo plano, seu tempo de bloqueio / desbloqueio será registrado em um time_xprofilearquivo em sua casa. Pode-se usá-lo para executar algum comando ou script no bloqueio / desbloqueio da tela.
Lembre-se de que, se você fechar o terminal atual, seu script será eliminado. Você pode usar
nohup ./script.sh &
Em seguida, ele continuará funcionando mesmo após o fechamento do terminal.
Como matar o script
Para matar o processo, use no terminal
ps ax| grep "[s]cript.sh" | cut -d' ' -f2 | xargs kill
O script acima é inspirado nesta resposta