Files
dotfiles/bin/lid_close.sh

27 lines
555 B
Bash
Executable File

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