]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
pm-utils script: Potential fixes for bugs #30 and #39
authorPhillip Berndt <phillip.berndt@googlemail.com>
Fri, 4 Dec 2015 11:53:17 +0000 (12:53 +0100)
committerPhillip Berndt <phillip.berndt@googlemail.com>
Fri, 4 Dec 2015 11:53:17 +0000 (12:53 +0100)
contrib/pm-utils/40autorandr

index 11291778c6b32dc28a479b562a0a2cd13bfef525..80cda11bba44f0d2a0053f387322bbc0ebcf827b 100755 (executable)
@@ -7,9 +7,19 @@ AUTORANDR="autorandr -c --default default"
 
 detect_display()
 {
+       # Wait for the system to recognize the changed state, see bug #30
+       # Note the ampersand below, this runs asynchroneously.
+       sleep 5
+
        for X in /tmp/.X11-unix/X*; do
                D="${X##/tmp/.X11-unix/X}"
-               user=`who | awk -vD="$D" '$2 ~ ":"D"(.[0-9])?$" {print $1}' | head -1`
+               # Prefer w to who, see bug #39
+               if [ -x "`which w`" ]; then
+                       user="`w -h | awk -vD="$D" '$2 ~ ":"D"(.[0-9])?$" || $3 ~ ":"D"(.[0-9])?$" {print $1}' | head -n1`"
+               else
+                       user="`who --all | awk -vD="$D" '$3 ~ ":"D"(.[0-9])?$" {print $1}' | head -1`"
+               fi
+
                if [ x"$user" != x"" ]; then
                        logger "autorandr: Changing display configuration for user '$user'"
                        export DISPLAY=":$D"
@@ -20,6 +30,6 @@ detect_display()
 
 case "$1" in
        thaw|resume)
-               detect_display
+               detect_display &
                ;;
 esac