]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/blobdiff - autorandr
detect primary screen and save to config.
[deb_pkgs/autorandr.git] / autorandr
index ff1170842e8dcd92f9b4c2c86deb969992c63e06..89d5e25609a6310ff514f304fa9c115bb681767d 100755 (executable)
--- a/autorandr
+++ b/autorandr
@@ -113,16 +113,23 @@ setup_fp() {
 }
 
 current_cfg_xrandr() {
-       $XRANDR -q | awk '
-       /^[^ ]+ disconnected / {
-        print "output "$1;
-               print "off";
-       }
-       /^[^ ]+ connected / {
+       local PRIMARY_SETUP=$(xdpyinfo -ext XINERAMA|awk '/^  head #0:/ {printf $3 $5}')
+       $XRANDR -q | awk -v primary_setup=${PRIMARY_SETUP} '
+       # display is connected and has a mode
+       /^[^ ]+ connected [^(]/ {
                split($3, A, "+");
                print "output "$1;
                print "mode "A[1];
                print "pos "A[2]"x"A[3];
+               if (A[1] A[2] "," A[3] == primary_setup)
+                       print "primary";
+               next;
+       }
+       # disconnected or disabled displays
+       /^[^ ]+ (dis)?connected / {
+               print "output "$1;
+               print "off";
+               next;
        }'
 }
 
@@ -131,7 +138,7 @@ current_cfg_disper() {
 }
 
 current_cfg() {
-       $CURRENT_METHOD;
+       $CURRENT_CFG_METHOD;
 }
 
 blocked() {
@@ -156,7 +163,7 @@ load_cfg_xrandr() {
 }
 
 load_cfg_disper() {
-       $DISPER -i < "$1"
+       $DISPER -i < "$1"
 }
 
 load() {
@@ -229,7 +236,7 @@ if [ -n "$SAVE_PROFILE" ]; then
        echo "Saving current configuration as profile '${SAVE_PROFILE}'"
        mkdir -p "$PROFILES/$SAVE_PROFILE"
        echo "$CURRENT_SETUP" > "$PROFILES/$SAVE_PROFILE/setup"
-       current_cfg > "$PROFILES/$SAVE_PROFILE/config"
+       $CURRENT_CFG_METHOD > "$PROFILES/$SAVE_PROFILE/config"
        exit 0
 fi