Files
dotfiles/X11/systemd/root/lock-on-suspend
kokopi-dev 2f27c335cf migration
2025-10-28 16:23:11 +09:00

39 lines
971 B
Bash
Executable File

#!/bin/bash
# Lock on suspend script
# Save as /usr/local/bin/lock-on-suspend
# Get the user who is logged in to X
USER=$(who | grep '(:0)' | awk '{print $1}' | head -n1)
# If no user found, try alternative method
if [[ -z "$USER" ]]; then
USER=$(ps aux | grep -E "(xinit|startx)" | grep -v grep | awk '{print $1}' | head -n1)
fi
# Exit if no user found
if [[ -z "$USER" ]]; then
echo "No X user found"
exit 0
fi
# Get user's home directory
USER_HOME=$(getent passwd "$USER" | cut -d: -f6)
# Set environment variables for the user's X session
export DISPLAY=:0
export XAUTHORITY="$USER_HOME/.Xauthority"
# Path to your lock script (adjust this to your actual lock script path)
LOCK_SCRIPT="$USER_HOME/.local/bin/i3lock-main"
# Lock as the user
if [[ -f "$LOCK_SCRIPT" ]]; then
sudo -u "$USER" "$LOCK_SCRIPT" &
else
# Fallback to basic i3lock
sudo -u "$USER" i3lock --color=1a1a1a --clock --indicator &
fi
# Give lock time to start
sleep 1