From e8c3d5895a360569385922793049b1c037865de5 Mon Sep 17 00:00:00 2001 From: Andrew Klapp Date: Mon, 3 Sep 2018 19:08:34 -0500 Subject: [PATCH] Added reconf-display script. --- reconf-display | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 reconf-display diff --git a/reconf-display b/reconf-display new file mode 100755 index 0000000..9064d1f --- /dev/null +++ b/reconf-display @@ -0,0 +1,64 @@ +#!/usr/bin/env sh +# A pretty simple auto configurator script for displays. + + +sort_list() +{ + # Sort a space-delimited list and echo it. + list_to_sort=$1 + + echo "${list_to_sort}" | xargs -n1 | sort | xargs +} + +xrandr_output="$(xrandr)" +all_displays="$(sort_list "$(echo "${xrandr_output}" | grep "connected" | cut -d " " -f1)")" +connected_displays="$(sort_list "$(echo "${xrandr_output}" | grep " connected" | cut -d " " -f1)")" + +xrandr_args="" + +display_is_connected() +{ + display_to_check=$1 + # Check the connected_displays list for $display_to_check + + result="no" + + for display in ${connected_displays}; do + if [ "${display}" = "${display_to_check}" ]; then + result="yes" + fi + done + + echo "${result}" +} + +display_configuration() +{ + target_displays="$*" + # Each argument is a display name. + use_this_configuration="no" + + if [ "$(sort_list "${target_displays}")" = "${connected_displays}" ]; then + use_this_configuration="yes" + fi + + echo "${use_this_configuration}" +} + +disable_disconnected_displays() +{ + for display in $all_displays; do + if [ ! "$(display_is_connected "${display}")" = "yes" ]; then + xrandr_args="${xrandr_args} --output ${display} --off" + fi + done +} + +echo "LVDS1 connected?" +display_is_connected "LVDS1" + +echo "HDMI3 connected?" +display_is_connected "HDMI3" + +disable_disconnected_displays +echo $xrandr_args