From 49fda6f432f150cd2f76630e67074a3cd9c6b825 Mon Sep 17 00:00:00 2001 From: Christian Rößler Date: Fri, 4 Nov 2016 15:57:48 +0100 Subject: [run-virt] resolution scripts now detect first connected output device (not only "Virtual1") --- .../data/opt/openslx/vmchooser/data/linux/resolution | 14 +++++++++++--- .../opt/openslx/vmchooser/data/linux/resolution_standalone | 14 +++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution index cde03d0f..24a0594f 100755 --- a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution +++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution @@ -16,7 +16,7 @@ check_resolution() { ACTRES=$(xrandr|grep '*'|tr -s " "|cut -f 2 -d " ") if [ "$ACTRES" != "$RESOLUTION" ]; then logger "openslx resolution utility: resolution changed; re-changing." - xrandr --output Virtual1 --mode ${RESOLUTION} + xrandr --output ${AUSGABE} --mode ${RESOLUTION} else logger "openslx resolution utility: resolution unchanged." fi @@ -50,19 +50,27 @@ else exit 1 fi +# Zu verbessern: Der Name des Verbundenen ist nicht immer bekannt. Daher nehmen wir das +# erste 'connected' in der Ausgabe xrandrs: +AUSGABE=$(xrandr -q|grep -m 1 " connected "|awk '{print $1}') +if [ -z "$AUSGABE" ]; then + logger "openslx resolution utility: Could not detect output device. Exiting." + exit 1 +fi + # Pruefen, ob xrand eine passende modeline ausgibt: if [ "$(xrandr | grep -c ${RESOLUTION})" -eq 0 ]; then logger "openslx resolution utility: xrandr yields no fitting modeline; adding one." MODELINE=$(cvt ${RESOLUTION//x/ } | grep -v "^#" | sed "s/Modeline //g" | sed 's/"//g') xrandr --newmode $(echo ${MODELINE}) - xrandr --addmode Virtual1 $(echo ${MODELINE} | cut -d " " -f 1) + xrandr --addmode ${AUSGABE} $(echo ${MODELINE} | cut -d " " -f 1) # Dann einzusteuernde Auflösung natürlich auf die neue ändern: RESOLUTION=$(echo ${MODELINE} | cut -d " " -f 1) logger "openslx resolution utility: (xrandr) modeline ${MODELINE} added (${RESOLUTION})." fi # Auflösung per xrandr setzen: -xrandr --output Virtual1 --mode ${RESOLUTION} +xrandr --output ${AUSGABE} --mode ${RESOLUTION} ERR=$? if [ $ERR -ne 0 ]; then logger "openslx resolution utility: xrandr error code ${ERR}." diff --git a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution_standalone b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution_standalone index d4f828b9..0dbbcf98 100755 --- a/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution_standalone +++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution_standalone @@ -21,7 +21,7 @@ check_resolution() { ACTRES=$(xrandr|grep '*'|tr -s " "|cut -f 2 -d " ") if [ "$ACTRES" != "$RESOLUTION" ]; then logger "openslx resolution utility: resolution changed; re-changing." - xrandr --output Virtual1 --mode ${RESOLUTION} + xrandr --output ${AUSGABE} --mode ${RESOLUTION} else logger "openslx resolution utility: resolution unchanged." fi @@ -86,19 +86,27 @@ else exit 1 fi +# Zu verbessern: Der Name des Verbundenen ist nicht immer bekannt. Daher nehmen wir das +# erste 'connected' in der Ausgabe xrandrs: +AUSGABE=$(xrandr -q|grep -m 1 " connected "|awk '{print $1}') +if [ -z "$AUSGABE" ]; then + logger "openslx resolution utility: Could not detect output device." + exit 1 +fi + # Pruefen, ob xrand eine passende modeline ausgibt: if [ "$(xrandr | grep -c ${RESOLUTION})" -eq 0 ]; then logger "openslx resolution utility: xrandr yields no fitting modeline; adding one." MODELINE=$(cvt ${RESOLUTION//x/ } | grep -v "^#" | sed "s/Modeline //g" | sed 's/"//g') xrandr --newmode $(echo ${MODELINE}) - xrandr --addmode Virtual1 $(echo ${MODELINE} | cut -d " " -f 1) + xrandr --addmode ${AUSGABE} $(echo ${MODELINE} | cut -d " " -f 1) # Dann einzusteuernde Auflösung natürlich auf die neue ändern: RESOLUTION=$(echo ${MODELINE} | cut -d " " -f 1) logger "openslx resolution utility: (xrandr) modeline ${MODELINE} added (${RESOLUTION})." fi # Auflösung per xrandr setzen: -xrandr --output Virtual1 --mode ${RESOLUTION} +xrandr --output ${AUSGABE} --mode ${RESOLUTION} ERR=$? if [ $ERR -ne 0 ]; then logger "openslx resolution utility: xrandr error code ${ERR}." -- cgit v1.2.3-55-g7522