From f8b7d4c10a5c1d924c91b1a45312202210497578 Mon Sep 17 00:00:00 2001 From: Adrian Kreher Date: Sat, 20 Dec 2008 04:12:00 -0600 Subject: [PATCH] lock: added script to lock your session as generically as possible, while trying to pick a lock program that cooperates with your [XGK]DM to allow a new session to be started. --- lock | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 lock diff --git a/lock b/lock new file mode 100755 index 0000000..4610899 --- /dev/null +++ b/lock @@ -0,0 +1,34 @@ +#!/bin/sh + +if [[ `uname -s` = 'Darwin' ]] ; then + /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine + exit +fi + +KDE_LOCK='kdesktop_lock || krunner_lock --forcelock || /usr/libexec/kde4/krunner_lock --forcelock || /usr/lib/kde4/libexec/krunner_lock --forcelock' +GNOME_LOCK='gnome-screensaver-command --lock' +XSCREEN_LOCK='xscreensaver-command -lock || xlock' + +if ( ps -e | grep gdm >/dev/null 2>/dev/null ) ; then + # looks like Gnome. They probably want gnome-screensaver. + # start gnome-screensaver to ensure it's running + gnome-screensaver >/dev/null 2>/dev/null + eval $GNOME_LOCK 2>/dev/null && exit +elif ( ps -e | grep kdm >/dev/null 2>/dev/null ) ; then + # looks like some version of KDE. They probably want kde's screensaver. + eval $KDE_LOCK 2>/dev/null && exit +elif ( ps -e | grep xdm >/dev/null 2>/dev/null ) ; then + xscreensaver & >/dev/null 2>/dev/null + eval $XSCREEN_LOCK 2>/dev/null && exit +fi + +echo Could not decide what desktop manager you are using. +echo Trying fallback locking. +eval $KDE_LOCK 2>/dev/null && exit +gnome-screensaver >/dev/null 2>/dev/null +eval $GNOME_LOCK 2>/dev/null +xscreensaver & >/dev/null 2>/dev/null +eval $XSCREEN_LOCK 2>/dev/null && exit + +echo Could not lock your screen. +exit 1