]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
Merge branch 'austinglaser-pm-util-loginctl-order'
authorPhillip Berndt <phillip.berndt@googlemail.com>
Tue, 30 Aug 2016 09:40:31 +0000 (11:40 +0200)
committerPhillip Berndt <phillip.berndt@googlemail.com>
Tue, 30 Aug 2016 09:40:31 +0000 (11:40 +0200)
contrib/pm-utils/40autorandr

index 0e029af23e9f079b41ebc04293bc2990aea5d63f..716f771d9910c7f737d57f9e193645413bc787bf 100755 (executable)
@@ -18,20 +18,28 @@ find_user() {
                # by SO user intelfx
                user="$(
                loginctl list-sessions --no-legend | while read id uid user seat; do
-                        loginctl show-session -p Display -p Active "$id" | while IFS='=' read property value; do
-                               case "$property" in
-                                       Active)
-                                               if [ "$value" != "yes" ]; then
-                                                       continue
-                                               fi
-                                               ;;
-                                       Display)
-                                               if [ -n "$value" -a "$value" = "$D" ]; then
-                                                       echo $user
-                                               fi
-                                               ;;
-                               esac
-                       done
+                       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