]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
Merge https://github.com/ChrisDunder/autorandr
authortachylatus <helgesdk@gmail.com>
Thu, 30 Jan 2014 13:24:16 +0000 (14:24 +0100)
committertachylatus <helgesdk@gmail.com>
Thu, 30 Jan 2014 13:24:16 +0000 (14:24 +0100)
Conflicts:
autorandr

1  2 
autorandr

diff --combined autorandr
index fbf17a14699bb96989ebc3587db2c7477779b1a7,2a214763ebc3e344cedde04922eed57a08ecea2a..e3c9d6df4bf39f33da9580b388b35189d40c96e0
+++ b/autorandr
@@@ -55,7 -55,7 +55,7 @@@ FORCE_LOAD=
  DEFAULT_PROFILE=""
  SAVE_PROFILE=""
  
 -FP_METHODS="setup_fp_xrandr_edid setup_fp_sysfs_edid"
 +FP_METHODS="setup_fp_sysfs_edid setup_fp_xrandr_edid"
  CURRENT_CFG_METHOD="current_cfg_xrandr"
  LOAD_METHOD="load_cfg_xrandr"
  
@@@ -121,22 -121,17 +121,27 @@@ current_cfg_xrandr() 
        $XRANDR -q | awk -v primary_setup="${PRIMARY_SETUP}" '
        # display is connected and has a mode
        /^[^ ]+ connected [^(]/ {
 -              split($3, A, "+");
                print "output "$1;
 +              if ($3 == "primary") {
 +                      print $3
 +                      split($4, A, "+")
 +                      $4=$5
 +              }
 +              else {
 +                      split($3, A, "+");
 +                      if (A[1] A[2] "," A[3] == primary_setup)
 +                              print "primary";
 +              }
+               if (($4 == "left") || ($4 == "right")) {
+                       split(A[1], B, "x");
+                       A[1] = B[2]"x"B[1];
+                       print "rotate "$4;
+               }
                print "mode "A[1];
                print "pos "A[2]"x"A[3];
 -              if (A[1] A[2] "," A[3] == primary_setup)
 -                      print "primary";
 +              if ($4 !~ /^\(/) {
 +                      print "rotate "$4;
 +              }
                next;
        }
        # disconnected or disabled displays
@@@ -174,28 -169,7 +179,28 @@@ config_equal() 
  }
  
  load_cfg_xrandr() {
 -      sed 's!^!--!' "$1" | xargs $XRANDR
 +      # sed 1: Prefix arguments with "--"
 +      # sed 2: Merge arguments into one line per output
 +      # sed 3: Merge into two lines, all --off outputs in the first one
 +      sed 's/^/--/' "$1" | sed -e '
 +              :START
 +              /\n--output/{P;D}
 +              s/\n/ /
 +              N;bSTART' | sed -e '
 +                      ### First line
 +                      / --off/{
 +                              G
 +                              # Merge if next line contains --off
 +                              s/\n\([^\n]* --off\)/ \1/
 +                              h
 +                              $!d;b
 +                      }
 +                      ### Last line
 +                      H;x
 +                      # Merge if previous line contains --mode
 +                      s/\(--mode [^\n]*\)\n/\1 /
 +                      h
 +                      $!d' | xargs -L 1 $XRANDR
  }
  
  load_cfg_disper() {
@@@ -206,11 -180,6 +211,11 @@@ load() 
        local PROFILE="$1"
        local CONF="$PROFILES/$PROFILE/config"
        if [ -e "$CONF" ] ; then
 +    [ -x "$PROFILES/preswitch" ] && \
 +      "$PROFILES/preswitch" "$PROFILE"
 +    [ -x "$PROFILES/$PROFILE/preswitch" ] && \
 +      "$PROFILES/$PROFILE/preswitch" "$PROFILE"
 +
                echo " -> loading profile $PROFILE"
                $LOAD_METHOD "$CONF"
  
@@@ -229,10 -198,9 +234,10 @@@ Usage: $SCRIPTNAME [options
  -c, --change          reload current setup
  -s, --save <profile>  save your current setup to profile <profile>
  -l, --load <profile>  load profile <profile>
- -d, --default <profile> make profile <profile> the default profile 
+ -d, --default <profile> make profile <profile> the default profile
  --force                       force (re)loading of a profile
  --fingerprint         fingerprint your current hardware setup
 +--config              dump your current xrandr setup
  
   To prevent a profile from being loaded, place a script call "block" in its
   directory. The script is evaluated before the screen setup is inspected, and
@@@ -254,7 -222,7 +259,7 @@@ EO
        exit
  }
  # process parameters
 -OPTS=$(getopt -n autorandr -o s:l:d:cfh --long change,default:,save:,load:,force,fingerprint,help -- "$@")
 +OPTS=$(getopt -n autorandr -o s:l:d:cfh --long change,default:,save:,load:,force,fingerprint,config,help -- "$@")
  if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
  eval set -- "$OPTS"
  
@@@ -264,10 -232,9 +269,10 @@@ while true; d
                -d|--default) DEFAULT_PROFILE="$2"; shift 2 ;;
                -s|--save) SAVE_PROFILE="$2"; shift 2 ;;
                -l|--load) LOAD_PROFILE="$2"; shift 2 ;;
-               -h|--help) help ;; 
+               -h|--help) help ;;
                --force) FORCE_LOAD=1; shift ;;
                --fingerprint) setup_fp; exit 0;;
 +              --config) current_cfg; exit 0;;
                --) shift; break ;;
                *) echo "Error: $1"; exit 1;;
        esac