#!/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