Files
random-scripts/enable-displays-for-sleep

47 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env zsh
let just_list=0
local operation="--on"
local jq_filter_neg="| not"
local ignored=()
while getopts 'ldi:' name; do
case "${name}" in
h)
echo 'enable-displays-for-sleep [-l] [-d] [-i]'
echo '-d disable instead of enable'
echo '-l print the list of display that would be changed'
echo '-i ignore display'
echo 'By default, enable displays.'
;;
l)
just_list=1
;;
d)
jq_filter_neg=""
operation="--off"
;;
i)
ignored+="${OPTARG}"
;;
esac
done
SCRIPT=".[] | select(.enabled${jq_filter_neg}) | .name"
set -e
displays=("${(0)$(wlr-randr --json | jq --raw-output0 "${SCRIPT}")}")
set +e
displays=(${displays:|ignored})
if ((just_list)); then
printf '%s\0' ${displays}
else
flags=()
for display in ${displays}; do
flags+=(--output "${display}" "${operation}")
done
(( ${#flags} )) && wlr-randr ${flags}
fi