Update lid-power-manager.sh
Removed the ridiculous sudo crap and user specific parts since hyprland is ran as the user and there is no need for root. Inporvments right Also no need for the notify send nagging.
This commit is contained in:
parent
d1135eee21
commit
7e84b7accc
|
@ -1,36 +1,43 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
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"
|
||||
LID_PATH=$(find /proc/acpi/button/lid/ -name state | head -n1)
|
||||
|
||||
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!"
|
||||
# Check if the lid path exists
|
||||
if [[ -z "$LID_PATH" ]] || [[ ! -f "$LID_PATH" ]]; then
|
||||
echo "$(date): ERROR - Lid state file not found." >> "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Watch for lid events
|
||||
last_state="unknown"
|
||||
|
||||
while true; do
|
||||
# Wait for lid state to change
|
||||
inotifywait -e modify "$LID_PATH" >/dev/null 2>&1
|
||||
|
||||
state=$(grep -o 'open\|closed' "$LID_PATH")
|
||||
|
||||
# Log only when lid is opened or closed
|
||||
if [[ "$state" != "$last_state" ]]; then
|
||||
if [[ "$state" == "closed" ]]; then
|
||||
# Save brightness and suspend when lid is closed
|
||||
brightnessctl --device="$BACKLIGHT_NAME" get > "$SAVED_BRIGHTNESS_FILE"
|
||||
brightnessctl --device="$BACKLIGHT_NAME" set 0
|
||||
echo "$(date): Lid closed. Backlight saved and system suspending..." >> "$LOG"
|
||||
systemctl suspend
|
||||
|
||||
elif [[ "$state" == "open" ]]; then
|
||||
# Restore brightness when lid is opened
|
||||
if [[ -f "$SAVED_BRIGHTNESS_FILE" ]]; then
|
||||
BRIGHTNESS=$(cat "$SAVED_BRIGHTNESS_FILE")
|
||||
brightnessctl --device="$BACKLIGHT_NAME" set "$BRIGHTNESS"
|
||||
echo "$(date): Lid opened. Backlight restored." >> "$LOG"
|
||||
fi
|
||||
fi
|
||||
|
||||
last_state="$state"
|
||||
fi
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue