O script a seguir irá gravar o tempo de bloqueio / desbloqueio em um arquivo time_xprofile
em 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 &
Observação O script deve ser executado em segundo plano. Não mate isso. Se você ativar / desativar o bloqueio de tela enquanto o script estiver sendo executado em segundo plano, seu tempo de bloqueio / desbloqueio será registrado no arquivo time_xprofile
em sua casa. Pode ser usado para executar algum comando ou script no bloqueio / desbloqueio de 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á sendo executado mesmo depois de fechar o 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 por esta resposta