]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/blobdiff - contrib/pm-utils/40autorandr
New upstream version 1.14
[deb_pkgs/autorandr.git] / contrib / pm-utils / 40autorandr
index 716f771d9910c7f737d57f9e193645413bc787bf..01b5b15def09f1746586bb8489f87cb707afeee2 100755 (executable)
@@ -1,123 +1,9 @@
 #!/bin/sh
 #
 # 40autorandr: Change autorandr profile on thaw/resume
-exec > /var/log/autorandr.log 2>&1
-
-AUTORANDR="autorandr -c --default default"
-
-# Work around #44: Long user names in w
-export PROCPS_USERLEN=32
-
-find_user() {
-       # Determine user owning the display session from $1
-       D="$1"
-
-       # Prefer loginctl over all others, see bug #39
-       if [ -x "`which loginctl`" ]; then
-               # Based on http://unix.stackexchange.com/questions/203844/how-to-find-out-the-current-active-xserver-display-number/204498
-               # by SO user intelfx
-               user="$(
-               loginctl list-sessions --no-legend | while read id uid user seat; do
-                       session=$(loginctl show-session -p Display -p Active "$id")
-                       first=$(echo $session | cut -d" " -f1)
-                       second=$(echo $session | cut -d" " -f2)
-
-                       if [ -n $(echo "$first" | grep "Display") ]; then
-                               display=$first
-                               active=$second
-                       else
-                               display=$second
-                               active=$first
-                       fi
-
-                       active_value=$(echo "$active" | cut -d"=" -f2)
-                       display_value=$(echo "$display" | cut -d"=" -f2)
-
-                       if [ "$active_value" != "yes" ]; then
-                               continue
-                       fi
-
-                       if [ -n $display_value -a "$display_value" = "$D" ]; then
-                               echo $user
-                       fi
-               done
-               )"
-               if [ -n "$user" ]; then
-                       echo $user
-                       return 0
-               fi
-       fi
-
-       # 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`"
-
-               if [ -z "$user" ];      then
-                       # This fallback checks if there is exactly one user (except
-                       # root) logged in an interactive session and assumes the
-                       # session belongs to him. See bug #39.
-                       user="`w -hu | awk '/^\w+/ && $1 !~ "root" { users[$1]=$1; } ENDFILE { if(asort(users) == 1) for(u in users) print users[u]; }'`"
-               fi
-       else
-               user="`who --all | awk -vD="$D" '$3 ~ ":"D"(.[0-9])?$" {print $1}' | head -1`"
-
-               if [ -z "$user" ];      then
-                       # Same fallback as above; see bug #39.
-                       user="`who -u | awk '/^\w+/ && $1 !~ "root" { users[$1]=$1; } ENDFILE { if(asort(users) == 1) for(u in users) print users[u]; }'`"
-               fi
-       fi
-
-       if [ -n "$user" ]; then
-               echo $user
-               return 0
-       fi
-
-       # If none of the above worked, check if there is only one user owning
-       # processes in $DISPLAY except root
-       #
-       # This code should be optimized somehow, but keep in mind that not all
-       # systems symlink sh -> bash!
-       OUTPUT="$(
-               for p in /proc/*; do
-                       [ -d $p ] || continue
-                       d="$(awk -v RS='\0' -F= '$1=="DISPLAY" {print $2}' $p/environ 2>/dev/null)"
-                       if [ "$d" = "$D" ]; then
-                               stat -c %U $p
-                       fi
-               done | sort | uniq | grep -v root | nl | head -n1
-       )"
-       count=$(echo $OUTPUT | awk '{print $1}')
-       user=$(echo $OUTPUT | awk '{print $2}')
-
-       if [ "$count" -eq 1 ]; then
-               echo $user
-               return 0
-       fi
-
-       return 1
-}
-
-detect_display()
-{
-       for X in /tmp/.X11-unix/X*; do
-               D="${X##/tmp/.X11-unix/X}"
-
-               user="$(find_user ":$D")"
-
-               if [ x"$user" != x"" ]; then
-                       logger "autorandr: Changing display configuration for display :$D, user '$user'"
-                       export DISPLAY=":$D"
-                       /bin/su -c "${AUTORANDR}" "$user"
-               fi
-       done
-}
-
-if grep -q systemd /proc/1/comm && [ "$2" = "udev" ]; then
-    exec /bin/systemctl start autorandr-resume.service
-fi
 
 case "$1" in
        thaw|resume)
-               detect_display
+               /usr/bin/autorandr --batch --change --default default
                ;;
 esac