PowerToys/doc/devdocs/settingsv2/compatibility-legacy-settings.md
Alekhya 18eb6b4ffd
Dev documentation of SettingsV2 (#7335)
* created a folder for settings and added an overview, hotkey information

* basic structure for communication between settings and runner

* Added information about the IPC communication between settings and runner

* Added information about the communication between the settings process and modules

* Added details on backward compatibility

* brief overview on settings utils

* added an overview of the viewmodels and anomalies

* minor modifications

* Settings v2 dev docs (#7334)

* Added settings architecture and tech stack dev docs

* Added telemetry and updated architecture docs for settings v2

* Fix image link in ui_architecture markdown

* Added table of contents for settings v2

* Correct file path for ui architecture image

* nit fix in table of contents heading

* Add doc for xaml island tweaks

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-10-20 14:28:06 -07:00

1.4 KiB

Compatibility with legacy settings and runner

The following must be kept in mind regarding compatibility with settings v1 and runner.

1. Folder Naming structure

  • Each of the modules has a folder within the Local/Microsoft/PowerToys directory which contains the module configurations within the settings.json file. The name of this folder must be the same across settingsv1 and settingsv2.
  • The name of the settings folder for each powertoy is the same as the ModuleName. It is set within each of the viewModel files. This name must not be changed to ensure that the user configurations for each of the powertoys rolls over on update.

2. Communication with runner

  • The status of each of the modules is communicated with the runner in the form of a json object. The names of all the powerToys is set in the EnableModules.cs file. The JsonPropertyName must not be changed to ensure that the information is dispatched properly to all the modules by the runner.

ImageResizer anomaly

All the powertoys have the same folder name as well as JsonPropertyName to communicate information with the runner. However that is not the case with ImageResizer. The folder name is ImageResizer whereas the JsonPropertyName is Image Resizer(Note the additional space). This should not be changed to ensure backward compatibity as well as proper functioning of the module.