From 3ec797f4c817d280a5331fe9c8af58e67051264c Mon Sep 17 00:00:00 2001 From: Gardouille Date: Fri, 21 Aug 2020 21:31:59 +0200 Subject: [PATCH] Use --auto instead of --mode and clean duplicate --- ecran | 51 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/ecran b/ecran index 25deda4..3460706 100755 --- a/ecran +++ b/ecran @@ -5,7 +5,7 @@ # Vars {{{ ## First and main screen (laptop screen,…) -readonly MAIN_SCREEN="LVDS-1" +readonly MAIN_OUTPUT_NAME="LVDS-1" [ -z "${DEBUG}" ] && readonly DEBUG=0 @@ -30,10 +30,10 @@ define_vars() { # {{{ return_second_output_name="0" - SECOND_OUTPUT=$(xrandr | grep " connected" | grep -v "${MAIN_SCREEN}" | awk 'NR==1{ print $1 }') + SECOND_OUTPUT_NAME=$(xrandr | grep " connected" | grep -v "${MAIN_OUTPUT_NAME}" | awk 'NR==1{ print $1 }') debug_message "define_vars − \ -The second connected output is: ${SECOND_OUTPUT}." +The second connected output is: ${SECOND_OUTPUT_NAME}." return "${return_second_output_name}" } @@ -51,36 +51,33 @@ main # Manage arguments # {{{ # This code can't be in a function due to arguments case "${1}" in - ds | dockstation | work ) - xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --left-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768 - printf 'Xrandr for DisplayPort with dock station';; - home ) - xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --right-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768 - printf 'Xrandr for home configuration';; - vga ) - xrandr --output VGA-1 --mode 1024x768 --right-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768 - printf 'Xrandr for dual screen with VGA';; - hdmi | dp | displayport ) - xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --above "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768 - printf 'Xrandr for dual screen with DisplayPort';; - pres | prez | presentation ) - xrandr --output VGA-1 --mode 1024x768 --left-of "${MAIN_SCREEN:=/dev/null}" --output "${MAIN_SCREEN:=/dev/null}" --mode 1366x768 - printf 'Xrandr for presentation';; - - | off ) - xrandr --output "${MAIN_SCREEN:=/dev/null}" --mode 1360x768 --output "${SECOND_OUTPUT:=/dev/null}" --off --output VGA-1 --off --output HDMI-3 --off --output "${SECOND_OUTPUT:=/dev/null}" --off + off ) + ## TODO : One command to enable main screen and a loop to disable all other connected output + xrandr --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto --output "${SECOND_OUTPUT_NAME:=/dev/null}" --off --output VGA-1 --off --output HDMI-3 --off --output "${SECOND_OUTPUT_NAME:=/dev/null}" --off xrandr --output VGA --off - printf 'Desactivate all video output';; - out ) - xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1920x1080 --output "${MAIN_SCREEN:=/dev/null}" --off + printf 'Desactivate all video output' ;; - game ) - xrandr --output "${SECOND_OUTPUT:=/dev/null}" --mode 1680x1050 --output "${MAIN_SCREEN:=/dev/null}" --off + leftof | left-of | ds | dockstation | work ) + #xrandr --output VGA-1 --mode 1024x768 --left-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --mode 1366x768 + xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --left-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto + printf 'Xrandr for second output left-of main screen' + ;; + rightof | right-of | home ) + xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --right-of "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto + printf 'Xrandr for second output left-of main screen' + ;; + above ) + xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --above "${MAIN_OUTPUT_NAME:=/dev/null}" --output "${MAIN_OUTPUT_NAME:=/dev/null}" --auto + printf 'Xrandr for dual screen with DisplayPort' + ;; + out | game ) + xrandr --output "${SECOND_OUTPUT_NAME:=/dev/null}" --auto --output "${MAIN_OUTPUT_NAME:=/dev/null}" --off ;; first_off | main_off | laptop_off ) - xrandr --output "${MAIN_SCREEN:=/dev/null}" --off + xrandr --output "${MAIN_OUTPUT_NAME:=/dev/null}" --off ;; * ) - printf 'Bad argument, please use [vga|hdmi|ds|work|-|off]' + printf 'Bad argument, please use [vga|hdmi|ds|work|off]' exit 1 ;; esac