From 421a31ad6ada01dae1fb38e9e016b3df1bba5c35 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Sat, 28 Jul 2007 01:22:13 +0200 Subject: [PATCH] Some further error handling regarding Xinerama --- debian/changelog | 8 ++++++++ grml-x | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 45a2224..c92a309 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +grml-x (0.3.30) unstable; urgency=low + + * Some further error handling regarding Xinerama. + We still don't have a reliable way to find the maximum resolution + of an external monitor, needs some further investigation. + + -- Michael Prokop Sat, 28 Jul 2007 01:20:54 +0200 + grml-x (0.3.29) unstable; urgency=low * Mention http://wiki.debian.org/XStrikeForce/FAQ in the xorg.conf diff --git a/grml-x b/grml-x index 32a3ed9..97e2ae1 100755 --- a/grml-x +++ b/grml-x @@ -220,12 +220,20 @@ Just press Ctrl-C to cancel operation. # now calculate Virtual size for use with Xinerama HORIZ_RES1="$(grep 'Max. Resolution:' $MONITORINFO | sed 's/ Max\. Resolution: \(.*\)x\(.*\)/\1/')" VERIZ_RES1="$(grep 'Max. Resolution:' $MONITORINFO | sed 's/ Max\. Resolution: \(.*\)x\(.*\)/\2/')" + # it might happen that we don't have a Max Resolution in hwinfo output :-/ + # fall back to a generic value then... + # TODO: check out how to get resolution of external monitor from console + if [ -z "$HORIZ_RES1" ] ; then + HORIZ_RES1="1024" + VERIZ_RES1="768" + fi - HORIZ_RES2="$(echo $FRAMEBUFFER | sed 's/ Mode 0x.*: \(.*\)x.*/\1/')" - VERIZ_RES2="$(echo $FRAMEBUFFER | sed 's/ Mode 0x.*x\(.*\) (.*/\1/')" + # get maximum of output + HORIZ_RES2="$(echo $FRAMEBUFFER | grep 'Mode 0x' | sed 's/ Mode 0x.*: \(.*\)x.*/\1/'| sort -u | head -1)" + VERIZ_RES2="$(echo $FRAMEBUFFER | grep 'Mode 0x' | sed 's/ Mode 0x.*x\(.*\) (.*/\1/' | sort -u | head -1)" - if [ -n "$HORIZ_RES1" -a -n "$VERIZ_RES1" -a -n "$HORIZ_RES2" ] ; then - if [ $(echo $VERIZ_RES1 - $VERIZ_RES2 | bc -l) -eq 0 ] ; then + if [ -n "$HORIZ_RES1" -a -n "$VERIZ_RES1" -a -n "$HORIZ_RES2" -a -n "$VERIZ_RES2" ] ; then + if [ "$(echo $VERIZ_RES1" - "$VERIZ_RES2 | bc -l)" -eq 0 ] ; then VERIZ_RESULT="$VERIZ_RES1" elif [ "$VERIZ_RES1" -gt "$VERIZ_RES2" ] ; then VERIZ_RESULT="$VERIZ_RES1" -- 2.1.4