#!/bin/sh if [ "$1" = "start" ]; then MODE="start" elif [ "$1" = "stop" ]; then MODE="stop" elif [ "$1" = "toggle" ]; then if pidof -s xss-lock > /dev/null 2>&1; then MODE="stop" else MODE="start" fi elif [ "$1" = "lock" ]; then MODE="lock" else echo "Invalid command usage, use: lockscreen [start/stop/toggle/lock]" exit 1 fi if [ "$MODE" = "start" ]; then echo "Starting xss-lock" # Set X11 lockscreen delays (DPMS) xset s on xset s 600 10 # Dim screen after 10 minutes, lock 10s later # XSS lock with xsecurelock xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock & elif [ "$MODE" = "stop" ]; then echo "Stopping xss-lock" # Remove X11 lockscreen delays (DPMS) xset s off # Stop XSS lock killall xss-lock elif [ "$MODE" = "lock" ]; then # Send a DPMS trigger if xss-lock is running to inform it # about the lockstate, if it's not running, run xsecurelock directly if pidof -s xss-lock > /dev/null 2>&1; then echo "Locking screen - using DPMS (xss-lock active)" xset s activate else echo "Locking screen - running xsecurelock directly (xss-lock isn't running)" xsecurelock fi fi