<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This documentation enhances the DSC documentation by incorporating reference documents and providing examples. Closes #42552. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: Niels Laute <niels.laute@live.nl>
7.7 KiB
description, ms.date, ms.topic, title
| description | ms.date | ms.topic | title |
|---|---|---|---|
| DSC configuration reference for PowerToys App module (general settings) | 10/18/2025 | reference | App module |
App Module
Synopsis
Manages general PowerToys application settings, including utility enable/disable states, startup behavior, and theme preferences.
Description
The App module controls global PowerToys settings that affect the entire
application. This includes which utilities are enabled, whether PowerToys
runs at startup, the application theme, and other general preferences.
Unlike other modules that configure specific utilities, the App module manages PowerToys-wide settings and the enabled state of all utilities.
Properties
The App module supports the following configurable properties:
Enabled
Controls which PowerToys utilities are enabled or disabled.
Type: Object
Properties:
AdvancedPaste(boolean) - Enable/disable Advanced Paste utility.AlwaysOnTop(boolean) - Enable/disable Always On Top utility.Awake(boolean) - Enable/disable Awake utility.ColorPicker(boolean) - Enable/disable Color Picker utility.CropAndLock(boolean) - Enable/disable Crop And Lock utility.EnvironmentVariables(boolean) - Enable/disable Environment Variables utility.FancyZones(boolean) - Enable/disable FancyZones utility.FileLocksmith(boolean) - Enable/disable File Locksmith utility.FindMyMouse(boolean) - Enable/disable Find My Mouse utility.Hosts(boolean) - Enable/disable Hosts File Editor utility.ImageResizer(boolean) - Enable/disable Image Resizer utility.KeyboardManager(boolean) - Enable/disable Keyboard Manager utility.MeasureTool(boolean) - Enable/disable Measure Tool utility.MouseHighlighter(boolean) - Enable/disable Mouse Highlighter utility.MouseJump(boolean) - Enable/disable Mouse Jump utility.MousePointerCrosshairs(boolean) - Enable/disable Mouse Pointer Crosshairs utility.Peek(boolean) - Enable/disable Peek utility.PowerAccent(boolean) - Enable/disable Power Accent utility.PowerOCR(boolean) - Enable/disable Power OCR utility.PowerRename(boolean) - Enable/disable Power Rename utility.RegistryPreview(boolean) - Enable/disable Registry Preview utility.ShortcutGuide(boolean) - Enable/disable Shortcut Guide utility.Workspaces(boolean) - Enable/disable Workspaces utility.ZoomIt(boolean) - Enable/disable ZoomIt utility.
startup
Controls whether PowerToys starts automatically when you sign in.
Type: boolean
Default: true
run_elevated
Controls whether PowerToys runs with administrator privileges.
Type: boolean
Default: false
theme
Sets the application theme.
Type: string
Allowed values: "light", "dark", "system"
Default: "system"
Examples
Example 1 - Enable specific utilities with direct execution
This example enables only FancyZones, PowerRename, and ColorPicker while disabling all others.
$config = @{
settings = @{
properties = @{
Enabled = @{
AdvancedPaste = $false
AlwaysOnTop = $false
Awake = $false
ColorPicker = $true
CropAndLock = $false
EnvironmentVariables = $false
FancyZones = $true
FileLocksmith = $false
FindMyMouse = $false
Hosts = $false
ImageResizer = $false
KeyboardManager = $false
MeasureTool = $false
MouseHighlighter = $false
MouseJump = $false
MousePointerCrosshairs = $false
Peek = $false
PowerAccent = $false
PowerOCR = $false
PowerRename = $true
RegistryPreview = $false
ShortcutGuide = $false
Workspaces = $false
ZoomIt = $false
}
}
name = "App"
version = "1.0"
}
} | ConvertTo-Json -Depth 10 -Compress
PowerToys.DSC.exe set --resource 'settings' --module App --input $config
Example 2 - Configure startup and theme with DSC
This example configures PowerToys to run at startup with elevated privileges and use dark theme.
dsc config set --file app-config.dsc.yaml
# app-config.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
- name: Configure PowerToys general settings
type: Microsoft.PowerToys/AppSettings
properties:
settings:
properties:
startup: true
run_elevated: true
theme: dark
name: App
version: 1.0
Example 3 - Enable all utilities with WinGet
This example installs PowerToys and enables all available utilities.
winget configure winget-enable-all.yaml
# winget-enable-all.yaml
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json
metadata:
winget:
processor: dscv3
resources:
- name: Install PowerToys
type: Microsoft.WinGet.DSC/WinGetPackage
properties:
id: Microsoft.PowerToys
source: winget
- name: Enable all utilities
type: Microsoft.PowerToys/AppSettings
properties:
settings:
properties:
Enabled:
AdvancedPaste: true
AlwaysOnTop: true
Awake: true
ColorPicker: true
CropAndLock: true
EnvironmentVariables: true
FancyZones: true
FileLocksmith: true
FindMyMouse: true
Hosts: true
ImageResizer: true
KeyboardManager: true
MeasureTool: true
MouseHighlighter: true
MouseJump: true
MousePointerCrosshairs: true
Peek: true
PowerAccent: true
PowerOCR: true
PowerRename: true
RegistryPreview: true
ShortcutGuide: true
Workspaces: true
ZoomIt: true
name: App
version: 1.0
Example 4 - Test if specific utilities are enabled
This example tests whether FancyZones and PowerRename are enabled.
$desired = @{
settings = @{
properties = @{
Enabled = @{
FancyZones = $true
PowerRename = $true
}
}
name = "App"
version = "1.0"
}
} | ConvertTo-Json -Depth 10 -Compress
$result = PowerToys.DSC.exe test --resource 'settings' --module App `
--input $desired | ConvertFrom-Json
if ($result._inDesiredState) {
Write-Host "FancyZones and PowerRename are enabled"
} else {
Write-Host "Configuration needs to be updated"
}
Example 5 - Individual resource for each utility
This example shows enabling utilities individually, which provides better granularity for complex configurations.
# Get current state
PowerToys.DSC.exe get --resource 'settings' --module App
# Enable individual utilities
$config = @{
settings = @{
properties = @{
Enabled = @{
FancyZones = $true
}
}
name = "App"
version = "1.0"
}
} | ConvertTo-Json -Depth 10 -Compress
PowerToys.DSC.exe set --resource 'settings' --module App --input $config
Example 6 - Get schema for App module
This example retrieves the complete JSON schema for the App module.
PowerToys.DSC.exe schema --resource 'settings' --module App | `
ConvertFrom-Json | ConvertTo-Json -Depth 10