summaryrefslogtreecommitdiffstats
path: root/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
diff options
context:
space:
mode:
authorChristian Rößler2017-04-11 17:05:21 +0200
committerChristian Rößler2017-04-11 17:05:21 +0200
commitb185f310cd0c8be4a34374730ce3c77627b51682 (patch)
treeb6c39428fb37a7c0d18062b72c858fcaf64bdda3 /core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
parent[idleaction] Support detached and delayed operation (diff)
downloadmltk-b185f310cd0c8be4a34374730ce3c77627b51682.tar.gz
mltk-b185f310cd0c8be4a34374730ce3c77627b51682.tar.xz
mltk-b185f310cd0c8be4a34374730ce3c77627b51682.zip
[run-virt] Floppy (fd1)-scripts: No more display manager conf. patching,
now via systemd service files started. To be tested!
Diffstat (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution')
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution32
1 files changed, 17 insertions, 15 deletions
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
index 24a0594f..a8942b9f 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/resolution
@@ -13,10 +13,10 @@ DISPLAY=:0.0
check_resolution() {
# Now, let's wait even more seconds to see if another process re-changes res.:
- ACTRES=$(xrandr|grep '*'|tr -s " "|cut -f 2 -d " ")
+ ACTRES=$(DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr|grep '*'|tr -s " "|cut -f 2 -d " ")
if [ "$ACTRES" != "$RESOLUTION" ]; then
logger "openslx resolution utility: resolution changed; re-changing."
- xrandr --output ${AUSGABE} --mode ${RESOLUTION}
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --output ${AUSGABE} --mode ${RESOLUTION}
else
logger "openslx resolution utility: resolution unchanged."
fi
@@ -41,36 +41,38 @@ fi
# Das ist mitunter ein Problem, da die richtige zu finden - Distroabhängig!
# Hier ein Beispiel für openSuse 13.2, sollte auch für Debian, Ubuntu, Redhat usw. laufen:.
-XAUTHDATEI=$(ps aux | grep -o "X.* \-auth *[^ ]*" | awk '{print $NF}')
-if [ -n "$XAUTHDATEI" ]; then
- logger "openslx resolution utility: XAUTHFILE found."
- XAUTHORITY="${XAUTHDATEI}"
-else
- logger "openslx resolution utility: XAUTHFILE not found. Exiting."
- exit 1
-fi
+# XAUTHDATEI=$(ps aux | grep -o "root.*X.* \-auth *[^ ]*" | awk '{print $NF}')
+
+for wartezeit in 0 1 2 3 5 10 10 0 ende; do
+ [ "$wartezeit" = "ende" ] && { logger "openslx resolution utility: XAUTHFILE not found. Exiting." ; exit 1; }
+ XAUTHORITY=$(ps aux | grep -o "root.*X.* \-auth *[^ ]*" | awk '{print $NF}')
+ [ -n "${XAUTHORITY}" ] && break
+ sleep $wartezeit
+done
+
+logger "openslx resolution utility: XAUTHFILE found."
# 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}')
+AUSGABE=$(DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" 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
+if [ "$(DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} 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 ${AUSGABE} $(echo ${MODELINE} | cut -d " " -f 1)
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --newmode $(echo ${MODELINE})
+ DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" 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 ${AUSGABE} --mode ${RESOLUTION}
+DISPLAY="${DISPLAY}" XAUTHORITY="${XAUTHORITY}" xrandr --output ${AUSGABE} --mode ${RESOLUTION}
ERR=$?
if [ $ERR -ne 0 ]; then
logger "openslx resolution utility: xrandr error code ${ERR}."