X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=autorandr.py;h=1e08e50c67ef8da6421739a20482ae5c8aa4d2b4;hb=d8eca8018138de26eae947a3f7357711a0b56d9c;hp=99ce9db2940001dce383c0d8122c47990bb2f728;hpb=ca1720207e187a9f78b5ce2f515bf3042e2e3a4a;p=deb_pkgs%2Fautorandr.git diff --git a/autorandr.py b/autorandr.py index 99ce9db..1e08e50 100755 --- a/autorandr.py +++ b/autorandr.py @@ -497,19 +497,21 @@ def main(argv): print(str(e)) options = { "--help": True } - profile_dir = os.path.expanduser("~/.autorandr") - if not os.path.isdir(profile_dir): - profile_dir = os.path.join(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), "autorandr") - - profile_path = os.path.join(profile_dir, "profiles") - + profiles = {} try: - profiles = load_profiles(profile_path) - except OSError as e: - if e.errno == 2: # No such file or directory - profiles = {} - else: - raise e + # Load profiles from each XDG config directory + for directory in os.environ.get("XDG_CONFIG_DIRS", "").split(":"): + system_profile_path = os.path.join(directory, "autorandr") + if os.path.isdir(system_profile_path): + profiles.update(load_profiles(system_profile_path)) + # For the user's profiles, prefer the legacy ~/.autorandr if it already exists + # profile_path is also used later on to store configurations + profile_path = os.path.expanduser("~/.autorandr") + if not os.path.isdir(profile_path): + # Elsewise, follow the XDG specification + profile_path = os.path.join(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), "autorandr") + if os.path.isdir(profile_path): + profiles.update(load_profiles(profile_path)) except Exception as e: print("Failed to load profiles:\n%s" % str(e), file=sys.stderr) sys.exit(1)