Below is a simple bash script I developed which checks to see whether a user is using the X Window System before attempting to do something. Basically it checks to see if the system is idle. This can be useful if you want to run a backup or a virus scan without impacting a user that may interacting with the desktop environment.

In this example we will consider the system idle if no user interaction with the X Window System has occurred for 10 minutes. Afterwards the system will shut itself down (ideal following a backup)

This script makes uses the program xprintidle to determine how many milliseconds has passed since the user has interacted with X. It can be installed on a Debian based system using the command sudo apt-get install xprintidle


#Check if X is idle. Timer set to 10 minutes.

export DISPLAY=:0


while [ $idletime -le 600000 ]
echo "Idle Time is: $idletime milliseconds"
sleep 1

sudo shutdown -h now