Sleep(Suspend) When Idle
From MythTV Official Wiki
The script below can be used to put a frontend to sleep whenever xscreensaver turns the display 'Off' via DPMS. It was written with Mythbuntu 12.04/XFCE in mind, however it could probably be adapted for others distros.
Every 30 seconds it checks if mythfrontend is running and no additional users are logged in (via SSH), if so, it will check the DPMS status via xset, and if it is 'Off' it will suspend the machine.
Make the script executable by your frontend user account, and configure it to run in the session start.
NOTE: DPMS has 4 states; on, sleep, suspend, and off. The script will only trigger on the 'Off' state.
autosuspend.py
#!/usr/bin/env python from subprocess import call, check_output import time # Mythtv frontend process name fecommand = "mythfrontend.real" # Command to use to suspend the computer sleepcmd= ('dbus-send --system --print-reply ' '--dest="org.freedesktop.UPower" ' '/org/freedesktop/UPower ' 'org.freedesktop.UPower.Suspend') # Start infinate loop while True : # Wait 30 seconds before performing checks time.sleep (30) # Determine if the Frontend is stopped festopped = call("pidof " + fecommand + " >nul", shell=True) # Get the number of logged in users numusers = check_output("who -q | grep users | awk -F'=' '{print $2}'", shell=True) # If the number of logged in users <2 and the front end is not stopped if int(numusers) < 2 and not festopped: # Get the monitor DPMS status status = check_output('xset q |grep "Monitor is "', shell=True) # If the monitor DMPS status is 'Off' if 'Off' in status: # Run the sleep command call(sleepcmd, shell=True)