suspending the laptop when no external screen is connected and lid is closed
This commit is contained in:
26
bin/lid_close.sh
Executable file
26
bin/lid_close.sh
Executable 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
|
||||
Reference in New Issue
Block a user