Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am looking for a way to store lock/unlock screen times.

A=$(date)
echo $A >> $HOME/time_xprofile

What did I try:

$HOME/.bashrc
$HOME/.bash_logout
$HOME/.bash_prompt
$HOME/.xprofile

Then I locked the screen and checked whether file appeared and it failes every time. How can I check the time than?

share|improve this question
    
As I read this question, I thought you were not running an X server. The answer you've selected is purely working while running an X server. Maybe you could describe your situation better... –  ExploWare Mar 18 at 23:45

1 Answer 1

up vote 10 down vote accepted

The following script will write lock/unlock time in a file time_xprofile in your home.

#!/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 )

save the script. Give it execution permission.

chmod +x script.sh

How to run

./script.sh &

Note The script should run in back ground. Do not kill it. If you turn your screen lock/unlock while the script is running in background, your time of lock/unlock will be recorded in time_xprofile file at your home. One can use it to run some command or script at screen lock/unlock.

Mind that if you close the current terminal your script will be killed. You can use

nohup ./script.sh &

Then it will continue running even after closing the terminal.

How to kill the script

To kill the process, use in terminal

ps ax| grep "[s]cript.sh" | cut -d' ' -f2 | xargs kill

Above script is inspired by this answer

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.