#!/usr/bin/env zsh let just_list=0 local operation="-d" local jq_filter_neg="| not" local ignored=() while getopts 'ldi:' name; do case "${name}" in l) just_list=1 ;; d) jq_filter_neg="" operation="-s" ;; 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 for display in ${displays}; do way-displays "${operation}" DISABLED "${display}" done fi