Add lockscreen management script

This commit is contained in:
ItsDrike 2021-11-21 23:54:42 +01:00
parent d4dbe64515
commit 0619e887a3
No known key found for this signature in database
GPG key ID: FB8CA11A2CF3A843
3 changed files with 50 additions and 18 deletions

View file

@ -6,18 +6,14 @@
# Set monitor order
xrandr --output HDMI-1 --auto --output eDP-1 --right-of HDMI-1 --auto &
# XSS lock with xsecurelock
xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock &
# Set X11 lockscreen delays (DPMS)
xset s on &
xset s 600 10 & # 10 minutes, 5s for dimmer
# Start xsecurelock lockscreen with xss-lock
~/.local/bin/scripts/lockscreen start &
# Set the background with a custom `setbg` script
setbg &
# Use xresources file in ~/.config/x11
xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources
xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources &
# Start compositor manager to allow transparency
picom -b --experimental-backends &
@ -44,12 +40,6 @@ numlockx &
# Udiskie for simple mounting and notifications, no automount for security reasons
udiskie -A -s &
# Run emacs daemon
#emacs --daemon &
# Run urxvt daemon
#urxvtd -q -o -f &
# Enable running applications from chroot
xhost +local:

View file

@ -104,10 +104,6 @@ myKeys =
[ ("M-S-r", spawn "xmonad --recompile; xmonad --restart") -- Recompiles xmonad
, ("M-S-q", io exitSuccess) -- Quits xmonad
-- Lock screen
, ("C-M-l", spawn "xsecurelock") -- XSecureLock lockscreen
--, ("C-M-l", spawn "xset s activate") -- Send DPMS trigger for lockscreen
-- Programs
, ("M-b", spawn (myBrowser))
, ("M-<Return>", spawn (myTerminal))
@ -128,7 +124,9 @@ myKeys =
-- Script shortcuts
, ("M-S-p", spawn "setbg ~/Pictures/Wallpapers/Active") -- Set random background
, ("M-S-d", spawn "displayselect")
, ("M-S-d", spawn "displayselect") -- Set display configurations
, ("M-C-l", spawn "lockscreen lock") -- Lock the screen
, ("M-C-S-l", spawn "lockscreen toggle") -- Toggle automatic locking
-- Kill windows
, ("M-w", kill1) -- Kill the currently focused client

View file

@ -0,0 +1,44 @@
#!/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