From 120dbfd33827679dca8c21c434629cc3cb9bb94d Mon Sep 17 00:00:00 2001 From: tavo-wasd Date: Sun, 25 Aug 2024 13:05:48 -0600 Subject: [PATCH] pimp xrandr script --- scripts/menu/menu-xrandr | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/scripts/menu/menu-xrandr b/scripts/menu/menu-xrandr index 804aaa7..f94a10f 100755 --- a/scripts/menu/menu-xrandr +++ b/scripts/menu/menu-xrandr @@ -1,13 +1,23 @@ #!/bin/sh -LIST=`xrandr | sed '/ connected/!d;s/ .*$//'` -MONITORS=`printf '%s' "${LIST}" | tr '\n' ' '` +LIST="$(xrandr | sed '/ connected/!d;s/ .*$//')" +MONITORS="$(printf '%s' "${LIST}" | tr '\n' ' ')" +MIRR="$(printf 'Yes\nNo' | menu "Mirror monitors?:")" -CMD="$(FIRST=1 ; for i in ${MONITORS} ; do - CURR=`printf '%s' "${LIST}" | sed "/${LAST:=empty}/d" | menu "Next monitor (to right):"` +[ "${MIRR}" = "Yes" ] && CMD="$(FIRST=1 ; for i in ${MONITORS} ; do + CURR="${i}" + [ "${FIRST}" ] && printf 'xrandr --output %s' "${CURR}" && FIRST= + [ "${LAST}" ] && printf ' --same-as %s' "${CURR}" + LAST="${CURR}" +done)" + +! [ "${CMD}" ] && CMD="$(FIRST=1 ; for i in ${MONITORS} ; do + CURR="$(printf '%s' "${LIST}" | sed "/${LAST:=empty}/d" | menu "Next monitor (to right):")" [ -z "${CURR}" ] && exit 0 [ "${FIRST}" ] && printf 'xrandr --output %s' "${CURR}" && FIRST= [ "${LAST}" ] && printf ' --left-of %s' "${CURR}" LAST="${CURR}" done)" -$($CMD) +CMD="xrandr --auto && $CMD" +[ "${CMD}" ] && eval "${CMD}" +printf '%s' "${CMD}"