2026-04-18 17:15:21 +02:00

26 lines
785 B
Bash
Executable File

#!/bin/sh
action="$1"
internal="${2:-eDP-1}"
external_active_count="$(swaymsg -t get_outputs | python3 -c 'import json,sys; internal=sys.argv[1]; outputs=json.load(sys.stdin); print(sum(1 for o in outputs if o.get("active") and o.get("name") != internal and not o.get("non_desktop", False)))' "$internal" 2>/dev/null)"
if [ -z "$external_active_count" ]; then
external_active_count=0
fi
case "$action" in
on)
if [ "$external_active_count" -gt 0 ]; then
swaymsg "output $internal disable"
else
/usr/sbin/playerctl -a pause >/dev/null 2>&1 || true
/usr/sbin/qs -c noctalia-shell ipc call lockScreen lock
systemctl suspend
fi
;;
off)
swaymsg "output $internal enable"
;;
esac