37 lines
1.0 KiB
Bash
37 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
EVENT=$1
|
|
USER_NAME="your_user_name_here"
|
|
USER_ID=$(id -u "$USER_NAME")
|
|
USER_ENV_DIR="/run/user/$USER_ID"
|
|
LOG="/tmp/lid-handler.log"
|
|
SAVED_BRIGHTNESS_FILE="/tmp/keyboard_backlight_saved"
|
|
BACKLIGHT_NAME="system76_acpi::kbd_backlight"
|
|
|
|
export XDG_RUNTIME_DIR="$USER_ENV_DIR"
|
|
export DBUS_SESSION_BUS_ADDRESS="unix:path=$USER_ENV_DIR/bus"
|
|
|
|
run_user_cmd() {
|
|
sudo -u "$USER_NAME" XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" "$@"
|
|
}
|
|
|
|
echo "$(date): Lid $EVENT" >>"$LOG"
|
|
|
|
if [[ "$EVENT" == "close" ]]; then
|
|
# Save current backlight level
|
|
brightnessctl --device="$BACKLIGHT_NAME" get >"$SAVED_BRIGHTNESS_FILE"
|
|
# Set backlight to 0
|
|
brightnessctl --device="$BACKLIGHT_NAME" set 0
|
|
|
|
systemctl suspend
|
|
|
|
elif [[ "$EVENT" == "open" ]]; then
|
|
# Restore backlight level if saved
|
|
if [[ -f "$SAVED_BRIGHTNESS_FILE" ]]; then
|
|
BRIGHTNESS=$(cat "$SAVED_BRIGHTNESS_FILE")
|
|
brightnessctl --device="$BACKLIGHT_NAME" set "$BRIGHTNESS"
|
|
fi
|
|
|
|
run_user_cmd notify-send "Welcome back!"
|
|
fi
|