Files
PowerToys/doc/devdocs/core/settings.md
2025-06-16 17:34:40 +02:00

2.9 KiB

PowerToys Settings System

PowerToys provides a comprehensive settings system that allows users to configure various aspects of the application and its modules. This document provides an overview of the settings system architecture and links to more detailed documentation.

Overview

The PowerToys settings system is built on a Windows App SDK WinUI3 .NET Unpackaged desktop application. It follows the MVVM (Model-View-ViewModel) architectural pattern to separate the user interface from the business logic.

The settings system is responsible for:

  • Providing a user interface to configure PowerToys modules
  • Storing and retrieving user preferences
  • Communicating configuration changes to the runner and modules
  • Providing a consistent experience across all PowerToys modules

Settings Files

PowerToys settings are stored in JSON files in the following locations:

  • Main settings: %LOCALAPPDATA%\Microsoft\PowerToys\settings.json
  • Module-specific settings: %LOCALAPPDATA%\Microsoft\PowerToys\<module_name>\settings.json

General Settings File Structure

The main settings file contains general PowerToys settings and a list of enabled/disabled modules:

{
  "general": {
    "startup": true,
    "enabled": {
      "Fancy Zones": true,
      "Image Resizer": true,
      "Keyboard Manager": false,
      // ...other modules
    }
  },
  "version": "0.89.0"
}

Module Settings File Structure

Each module can have its own settings file with module-specific configurations:

{
  "properties": {
    "fancyzones_shiftDrag": {
      "value": true
    },
    "fancyzones_mouseSwitch": {
      "value": false
    },
    // ...other module-specific settings
  },
  "version": "1.0"
}

Detailed Documentation

For more detailed documentation on the settings system, please refer to the following resources: