X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=autorandr.py;h=a37a6240542e1ca47e90eab113b61a826603673d;hb=eaa04753094d944c3513de9d4de85fb1eb2e8b7b;hp=670865acac7d5678a5a6eef3fc6f713a568270a9;hpb=c583fb43899ccf1744661f66e489e0b082dd7b16;p=deb_pkgs%2Fautorandr.git diff --git a/autorandr.py b/autorandr.py index 670865a..a37a624 100755 --- a/autorandr.py +++ b/autorandr.py @@ -601,6 +601,9 @@ def apply_configuration(new_configuration, current_configuration, dry_run=False) # at least.) # - Some implementations can not handle --transform at all, so avoid it unless # necessary. (See https://github.com/phillipberndt/autorandr/issues/37) + # - Some implementations can not handle --panning without specifying --fb + # explicitly, so avoid it unless necessary. + # (See https://github.com/phillipberndt/autorandr/issues/72) auxiliary_changes_pre = [] disable_outputs = [] @@ -615,15 +618,16 @@ def apply_configuration(new_configuration, current_configuration, dry_run=False) option_vector = new_configuration[output].option_vector if xrandr_version() >= Version("1.3.0"): - if "transform" in current_configuration[output].options: - auxiliary_changes_pre.append(["--output", output, "--transform", "none"]) - else: - try: - transform_index = option_vector.index("--transform") - if option_vector[transform_index+1] == XrandrOutput.XRANDR_DEFAULTS["transform"]: - option_vector = option_vector[:transform_index] + option_vector[transform_index+2:] - except ValueError: - pass + for option in ("transform", "panning"): + if option in current_configuration[output].options: + auxiliary_changes_pre.append(["--output", output, "--%s" % option, "none"]) + else: + try: + option_index = option_vector.index("--%s" % option) + if option_vector[option_index+1] == XrandrOutput.XRANDR_DEFAULTS[option]: + option_vector = option_vector[:option_index] + option_vector[option_index+2:] + except ValueError: + pass enable_outputs.append(option_vector) @@ -844,7 +848,7 @@ def dispatch_call_to_sessions(argv): display = process_environ["DISPLAY"] if "DISPLAY" in process_environ else None # To allow scripts to detect batch invocation (especially useful for predetect) - process_environ["AUTORANDR_BATCH_PID"] = os.getpid() + process_environ["AUTORANDR_BATCH_PID"] = str(os.getpid()) if display and display not in X11_displays_done: try: @@ -881,6 +885,9 @@ def main(argv): file=sys.stderr) sys.exit(posix.EX_USAGE) + if "-h" in options or "--help" in options: + exit_help() + # Batch mode if "--batch" in options: if ("DISPLAY" not in os.environ or not os.environ["DISPLAY"]) and os.getuid() == 0: @@ -975,9 +982,6 @@ def main(argv): raise AutorandrException("Failed to remove profile '%s'" % (options["--remove"],), e) sys.exit(0) - if "-h" in options or "--help" in options: - exit_help() - detected_profiles = find_profiles(config, profiles) load_profile = False