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