#!/bin/zsh # This script puts the monitors to sleep via dpms. # Sth in hyprland crashes and creates high gpu usage, if hyprpaper is running # when a monitor is being turned off and on again. # Therefore, we kill hyprpaper when turning the monitor off and start it again when turning it on. export STATUS_FILE="$XDG_RUNTIME_DIR/display.status" enable_display() { printf "true" >"$STATUS_FILE" hyprctl dispatch dpms on sleep 1 exec hyprpaper } disable_display() { killall hyprpaper printf "false" >"$STATUS_FILE" hyprctl dispatch dpms off } if ! [ -f "$STATUS_FILE" ]; then disable_display else if [ $(cat "$STATUS_FILE") = "true" ]; then disable_display elif [ $(cat "$STATUS_FILE") = "false" ]; then enable_display fi fi