xssstate

a simple utility to get the X screensaver state
git clone git://git.suckless.org/xssstate
Log | Files | Refs | README | LICENSE

commit c30b12c8e9d20225f69014d3fe60c0c0c4476773
parent f91e73ae451c1137da79019bb5a08daaca5f6323
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sat,  8 Dec 2012 22:41:48 +0100

Adding an example script for slock.

Diffstat:
Makefile | 2+-
README | 34++++++++++++++++++++++++++++++++++
xsidle.sh | 28++++++++++++++++++++++++++++
3 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile @@ -30,7 +30,7 @@ clean: dist: clean @echo creating dist tarball @mkdir -p xssstate-${VERSION} - @cp -R LICENSE Makefile config.mk \ + @cp -R LICENSE README Makefile config.mk xsidle.sh \ xssstate.1 arg.h ${SRC} xssstate-${VERSION} @tar -cf xssstate-${VERSION}.tar xssstate-${VERSION} @gzip xssstate-${VERSION}.tar diff --git a/README b/README @@ -0,0 +1,34 @@ +Xssstate +======== +This is a simple utility to get the state of the X screensaver exten‐ +sion. These states include the idle time, the screensaver state and the +time how long to wait until the screensaver should be active. + +The values for the states in X can be changed using xset(1). + +Turn off the screensaver: + + % xset s 0 + +Turn on the screensaver after 60 seconds inactivity: + + % xset s 60 + +Force the screensaver to be active: + + % xset s blank + +For more options, see xset(1). + + +Example script +-------------- +In xsidle.sh is an example script how to use this for a background ser‐ +vice that will control your screensaver. This can be used to invoke +slock(1) using following command: + + % xsidle.sh slock & + +This should be useful in your $HOME/.xinitrc file. + +Have fun! diff --git a/xsidle.sh b/xsidle.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# Use xset s $time to control the timeout when this will run. +# + +if [ $# -lt 1 ]; +then + printf "usage: %s cmd\n" "$(basename $0)" 2>&1 + exit 1 +fi +cmd="$1" + +while true +do + if [ $(xssstate -s) != "disabled" ]; + then + tosleep=$(($(xssstate -t) / 1000)) + if [ $tosleep -le 0 ]; + then + $cmd + else + sleep $tosleep + fi + else + sleep 10 + fi +done +