---- a/README.md
-+++ b/README.md
-@@ -142,6 +142,10 @@
- as the default configuration without you having to change the system-wide
- configuration.
-
-+You can store default values for any option in an INI-file in
-+`~/config/autorandr/settings.ini` in a section `config`. The most useful
-+candidate for doing that is `skip-options`, if you need it.
-+
- ## Hook scripts
-
- Three more scripts can be placed in the configuration directory (as
---- a/autorandr.py
-+++ b/autorandr.py
-@@ -42,6 +42,11 @@
- from functools import reduce
- from itertools import chain
-
-+if sys.version_info.major == 2:
-+ import ConfigParser as configparser
-+else:
-+ import configparser
-+
- try:
- input = raw_input
- except NameError:
-@@ -49,6 +54,7 @@
-
- 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),
-@@ -799,6 +805,11 @@
- 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
-
-
-@@ -1002,6 +1013,15 @@
- X11_displays_done.add(display)
-
-
-+def read_config(options, directory):
-+ """Parse a configuration config.ini from directory and merge it into
-+ the options dictionary"""
-+ config = configparser.ConfigParser()
-+ config.read(os.path.join(directory, "settings.ini"))
-+ if config.has_section("config"):
-+ for key, value in config.items("config"):
-+ options.setdefault("--%s" % key, value)
-+
- def main(argv):
- try:
- opts, args = getopt.getopt(argv[1:], "s:r:l:d:cfh",
-@@ -1040,6 +1060,7 @@
- if os.path.isdir(system_profile_path):
- profiles.update(load_profiles(system_profile_path))
- profile_symlinks.update(get_symlinks(system_profile_path))
-+ read_config(options, 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")
-@@ -1049,6 +1070,7 @@
- if os.path.isdir(profile_path):
- profiles.update(load_profiles(profile_path))
- profile_symlinks.update(get_symlinks(profile_path))
-+ read_config(options, profile_path)
- # Sort by descending mtime
- profiles = OrderedDict(sorted(profiles.items(), key=lambda x: -x[1]["config-mtime"]))
- except Exception as e: