diff --git a/lid-power-manager.sh b/lid-power-manager.sh new file mode 100644 index 0000000..82321f8 --- /dev/null +++ b/lid-power-manager.sh @@ -0,0 +1,36 @@ +#!/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