#!/sbin/sh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # # $1 is the display to be locked. # /var/xauth/$1 is a symbolic link to the actual xauth file. # XSCREENSAVER_LOCK=/usr/openwin/bin/xscreensaver-command XSCREENSAVER_LOCKARGS="-lock" XSCREENSAVER_CHECKARGS="-time" XSCREENSAVER_LOCKED="locked" OTHER_LOCK=/usr/openwin/bin/xlock OTHER_LOCKARGS="-mode blank" XLSATOMS="/usr/openwin/bin/xlsatoms" XLSATOMS_ARGS="-name" CDE_ATOM=_DT_SM_PREFERENCES GNOME_ATOM=GNOME_SM_DESKTOP XSCREENSAVER_ATOM=SCREENSAVER DISPLAY=:$1; export DISPLAY XAUTHORITY=/var/xauth/$1; export XAUTHORITY # # Note that these text strings we're greping are not localized. # # # Is it GNOME? # if ${XLSATOMS} ${XLSATOMS_ARGS} ${GNOME_ATOM} 2>/dev/null \ | grep -w ${GNOME_ATOM} >/dev/null; then # # Is it xscreensaver? # # xscreensaver if [ -x ${XSCREENSAVER_LOCK} ]; then ${XSCREENSAVER_LOCK} ${XSCREENSAVER_CHECKARGS} 2>/dev/null \ | grep -w ${XSCREENSAVER_LOCKED} >/dev/null && exit 0 ${XSCREENSAVER_LOCK} ${XSCREENSAVER_LOCKARGS} >/dev/null 2>&1 & exit 0 fi fi # # Is it CDE? # if ${XLSATOMS} ${XLSATOMS_ARGS} ${CDE_ATOM} 2>/dev/null \ | grep -w ${CDE_ATOM} >/dev/null; then exit 0 fi # In other situations, use xlock as default. if [ -x ${OTHER_LOCK} ]; then ${OTHER_LOCK} ${OTHER_LOCKARGS} & exit 0 fi exit 0