suspending the laptop when no external screen is connected and lid is closed

This commit is contained in:
2026-02-11 00:54:20 +01:00
parent 8f7bec4d25
commit f040004f46

26
bin/lid_close.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
INTERNAL="eDP-1"
# Count non-internal monitors reported by Hyprland
external_count=$(
hyprctl monitors | awk -v internal="$INTERNAL" '
$1 == "Monitor" {
name = $2
sub(":", "", name) # strip trailing colon
if (name != internal) {
print name
}
}
' | wc -l
)
# Always turn off the laptop panel on lid close
hyprctl keyword monitor "$INTERNAL, disable"
# Only lock if there is NO external monitor
if [ "$external_count" -eq 0 ]; then
hyprlock
systemctl suspend
fi