29 lines
626 B
Bash
Executable File
29 lines
626 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
pgrep -x hyprlock >/dev/null || hyprlock &
|
|
systemctl suspend-then-hibernate
|
|
|
|
sleep 2
|
|
|
|
INTERNAL="eDP-1"
|
|
|
|
external_on_count=$(
|
|
hyprctl -j monitors | jq -r --arg internal "$INTERNAL" '
|
|
[ .[]
|
|
| select(.name != $internal)
|
|
| select(.disabled != true)
|
|
| select(.dpmsStatus == true)
|
|
] | length
|
|
'
|
|
)
|
|
|
|
if [ "$external_on_count" -eq 0 ]; then
|
|
# no external screen, we enable internal screen
|
|
hyprctl keyword monitor "$INTERNAL, 1920x1080@120, 0x0, 1"
|
|
else
|
|
# external monitor active, we turn off internal screen
|
|
hyprctl keyword monitor "$INTERNAL, disable"
|
|
fi
|
|
|