#!/bin/sh - xsargs=-no-splash xslog=/var/log/screensaver # screensaver - simple front-end to xscreensaver, gnome-screensaver else xlock # Steve Kinzler, kinzler@cs.indiana.edu, Jun 03/Sep 09/May 10 # http://www.cs.indiana.edu/~kinzler/home.html#x11 # NOTE: xscreensaver crashes on 64-bit RHEL5 Nvidia may require # # cd /usr/lib64/xorg/modules/extensions # # mv libglx.so XXX_libglx.so; ln -s libglx.so.100.14.11 libglx.so # per us.download.nvidia.com/XFree86/Linux-x86/100.14.11/README/chapter-05.html case "`(xscreensaver --help) 2> /dev/null | grep screen`" in ?*) cmd=xscreensaver;; *) case "`(gnome-screensaver --version) 2> /dev/null | grep screen`" in ?*) cmd=gnome-screensaver;; *) cmd=xlock;; esac;; esac case "$#,$1" in 0,*|*,-h) cat <&2 usage: $0 [ start | exit | dclock | random | blank ] [ lock ] Using $cmd(1) With xlock, always locks. With gnome-screensaver, random vs blank and lock determined via gnome-screensaver-preferences settings. EOF exit 1;; esac case "$cmd" in xlock) case "$*" in lock*|*\ lock*) lock=;; *) lock=-nolock;; esac case "$*" in *start*|*exit*) exit 0;; *dclock*) exec $cmd -mode dclock $lock;; *random*) exec $cmd -mode random $lock;; *blank*) exec $cmd -mode blank $lock;; *) echo "$0: no command given" 1>&2; exit 2;; esac;; gnome-screensaver) case "$*" in *start*) $cmd-command --query > /dev/null;; *exit*) exec $cmd-command --exit;; *dclock*) echo "$0: mode not available (dclock)" 1>&2; exit 3;; *random*|*blank*) $cmd-command --activate > /dev/null;; *) echo "$0: no command given" 1>&2; exit 2;; esac;; esac case "$*" in *start*) $cmd-command -exit && if test -w "$xslog" then ($cmd $xsargs -verbose >> "$xslog" 2>&1 &) else ($cmd $xsargs &) fi;; *exit*) exec $cmd-command -exit;; *dclock*) echo "$0: mode not available (dclock)" 1>&2; exit 3;; *random*lock*|*lock*random*) $cmd-command -unthrottle > /dev/null 2>&1 $cmd-command -lock > /dev/null;; *random*) $cmd-command -activate > /dev/null;; *blank*lock*|*lock*blank*) $cmd-command -throttle > /dev/null 2>&1 $cmd-command -lock > /dev/null;; *blank*) $cmd-command -activate > /dev/null $cmd-command -throttle > /dev/null 2>&1;; *) echo "$0: no command given" 1>&2; exit 2;; esac