d=/tmp/.X11-unix for x in $d/X*; do displaynum=${x#$d/X} getXuser; if [ "x$XAUTHORITY" != x ]; then export DISPLAY=:"$displaynum" if pidof xscreensaver >/dev/null; then su "$XUSER" -s /bin/sh -c "xscreensaver-command -throttle" fi if [ x$LOCK_SCREEN = xtrue ]; then if pidof xscreensaver >/dev/null; then su "$XUSER" -s /bin/sh -c "xscreensaver-command -lock" elif pidof gnome-screensaver > /dev/null; then su "$XUSER" -s /bin/sh -c "gnome-screensaver-command --lock" elif pidof cinnamon-screensaver > /dev/null; then su "$XUSER" -s /bin/sh -c "cinnamon-screensaver-command --lock" elif pidof dcopserver >/dev/null; then avail_sessions=`dcop --all-users --list-sessions | grep '.DCOP.*__0'` # send the lock command to all sessions for session in $avail_sessions; do # /dev/null because dcop warns if it can't connect to X (this is normal!) dcop --session "$session" --all-users kdesktop KScreensaverIface lock > /dev/null 2>&1 done elif pidof xautolock >/dev/null;then su "$XUSER" -s /bin/sh -c "/usr/bin/xautolock -locknow" elif [ -x /usr/bin/xlock ]; then su "$XUSER" -s /bin/sh -c "/usr/bin/xlock -mode blank &" elif [ -x /usr/bin/xtrlock ]; then su "$XUSER" -s /bin/sh -c "/usr/bin/xtrlock &" elif [ -x /usr/bin/i3lock ]; then su "$XUSER" -s /bin/sh -c "/usr/bin/i3lock" fi fi case "$DISPLAY_DPMS" in xset) su "$XUSER" -s /bin/sh -c "xset dpms force off" ;; xrandr) su "$XUSER" -s /bin/sh -c "xrandr --output $XRANDR_OUTPUT --off" ;; vbetool) /usr/sbin/vbetool dpms off ;; esac if [ x$RADEON_LIGHT = xtrue ]; then [ -x /usr/sbin/radeontool ] && radeontool light off fi else if [ -x$DISPLAY_DPMS_NO_USER = xtrue ]; then [ -x /usr/sbin/vbetool ] && /usr/sbin/vbetool dpms off fi fi done