Skip to content
  • Jonas Ådahl's avatar
    Migrate old monitor configuration files to new system · bc316246
    Jonas Ådahl authored
    This commit changes the new configuration system to use monitors.xml
    instead of monitors-experimental.xml. When starting up and the
    monitors.xml file is loaded, if a legacy monitors.xml file is
    discovered (it has the version number 1), an attempt is made to migrate
    the stored configuration onto the new system.
    
    This is done in two steps:
    
    1) Parsing and translation of the old configuration. This works by
    parsing file using the mostly the old parser, but then translating the
    resulting configuration structs into the new configuration system. As
    the legacy configuration system doesn't carry over some state (such as
    tiling and scale used), some things are not available. For tiling, the
    migration paths makes an attempt to discover tiled monitors by
    comparing EDID data, and guessing what the main tile is. Determination
    of the scale of a migrated configuration is postponed until the
    configuration is actually applied. This works by flagging the
    configuration as 'migrated'.
    
    2) Finishing the migration when applying. When a configuration with the
    'migrated' flag is retrieved from the configuration store, the final
    step of the migration is taken place. This involves calculating the
    preferred scale given the mode configured, while making sure this
    doesn't result in any overlapping logical monitor regions etc.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777732
    bc316246