doc/dsc/modules/App.md
Manages general PowerToys application settings, including utility enable/disable states, startup behavior, and theme preferences.
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.
The App module supports the following configurable properties:
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.Controls whether PowerToys starts automatically when you sign in.
Type: boolean
Default: true
Controls whether PowerToys runs with administrator privileges.
Type: boolean
Default: false
Sets the application theme.
Type: string
Allowed values: "light", "dark", "system"
Default: "system"
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
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
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
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"
}
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
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