X-Git-Url: https://git.donarmstrong.com/?p=deb_pkgs%2Fautorandr.git;a=blobdiff_plain;f=autorandr.py;h=9524f4274d8275ca32bb9b53c8d55673cd1a5684;hp=2a4ddb7f3baffdf10f6c6d3847ed90c18afec40f;hb=1a48d584fe533555581f3f98818cd0ad9bd92334;hpb=71644199c85817ebb9258a1921e3a3b00deee8e9 diff --git a/autorandr.py b/autorandr.py index 2a4ddb7..9524f42 100755 --- a/autorandr.py +++ b/autorandr.py @@ -48,7 +48,7 @@ if sys.version_info.major == 2: else: import configparser -__version__ = "1.5" +__version__ = "1.6" try: input = raw_input @@ -645,6 +645,9 @@ def get_fb_dimensions(configuration): x = (a * o_width + b * o_height + c) / w y = (d * o_width + e * o_height + f) / w o_width, o_height = x, y + if "rotate" in output.options: + if output.options["rotate"] in ("left", "right"): + o_width, o_height = o_height, o_width if "pos" in output.options: o_left, o_top = map(int, output.options["pos"].split("x")) o_width += o_left @@ -761,14 +764,14 @@ def is_equal_configuration(source_configuration, target_configuration): """ for output in target_configuration.keys(): if "off" in target_configuration[output].options: - if (output in source_configuration or "off" not in source_configuration[output].options): + if (output in source_configuration and "off" not in source_configuration[output].options): return False else: if (output not in source_configuration) or (source_configuration[output] != target_configuration[output]): return False for output in source_configuration.keys(): if "off" in source_configuration[output].options: - if output in target_configuration and "off" not in target_configuration.options: + if output in target_configuration and "off" not in target_configuration[output].options: return False else: if output not in target_configuration: @@ -1073,6 +1076,15 @@ def dispatch_call_to_sessions(argv): X11_displays_done.add(display) +def enabled_monitors(config): + monitors = [] + for monitor in config: + if "--off" in config[monitor].option_vector: + continue + monitors.append(monitor) + return monitors + + def read_config(options, directory): """Parse a configuration config.ini from directory and merge it into the options dictionary""" @@ -1178,7 +1190,7 @@ def main(argv): exec_scripts(profile_folder, "postsave", { "CURRENT_PROFILE": options["--save"], "PROFILE_FOLDER": profile_folder, - "MONITORS": ":".join(config.keys()), + "MONITORS": ":".join(enabled_monitors(config)), }) except Exception as e: raise AutorandrException("Failed to save current configuration as profile '%s'" % (options["--save"],), e) @@ -1299,7 +1311,7 @@ def main(argv): script_metadata = { "CURRENT_PROFILE": load_profile, "PROFILE_FOLDER": scripts_path, - "MONITORS": ":".join(load_config.keys()), + "MONITORS": ":".join(enabled_monitors(load_config)), } exec_scripts(scripts_path, "preswitch", script_metadata) if "--debug" in options: