virtual_profiles = [
# (name, description, callback)
+ ("off", "Disable all outputs", None),
("common", "Clone all connected outputs at the largest common resolution", None),
("clone-largest", "Clone all connected outputs with the largest resolution (scaled down if necessary)", None),
("horizontal", "Stack all connected outputs horizontally at their largest resolution", None),
option_vector = new_configuration[output].option_vector
if xrandr_version() >= Version("1.3.0"):
- for option in ("transform", "panning"):
+ for option, off_value in (("transform", "none"), ("panning", "0x0")):
if option in current_configuration[output].options:
- auxiliary_changes_pre.append(["--output", output, "--%s" % option, "none"])
+ auxiliary_changes_pre.append(["--output", output, "--%s" % option, off_value])
else:
try:
option_index = option_vector.index("--%s" % option)
configuration[output].options["transform"] = "{},0,{},0,{},{},0,0,1".format(scale, mov_x, scale, mov_y)
else:
configuration[output].options["off"] = None
+ elif profile_name == "off":
+ for output in configuration:
+ for key in list(configuration[output].options.keys()):
+ del configuration[output].options[key]
+ configuration[output].options["off"] = None
return configuration
candidate_directories = [user_profile_path]
for config_dir in os.environ.get("XDG_CONFIG_DIRS", "/etc/xdg").split(":"):
- candidate_directories += os.path.join(config_dir, "autorandr")
+ candidate_directories.append(os.path.join(config_dir, "autorandr"))
if profile_path:
- candidate_directories += profile_path
+ candidate_directories.append(profile_path)
for folder in candidate_directories:
-
if script_name not in ran_scripts:
script = os.path.join(folder, script_name)
if os.access(script, os.X_OK | os.F_OK):
process_environ = {}
for environ_entry in open(environ_file).read().split("\0"):
- if "=" in environ_entry:
- name, value = environ_entry.split("=", 1)
+ name, sep, value = environ_entry.partition("=")
+ if name and sep:
if name == "DISPLAY" and "." in value:
value = value[:value.find(".")]
process_environ[name] = value