From 62bc94c8ae36c70f79ea7938d00862c93f0354a9 Mon Sep 17 00:00:00 2001 From: "G.Reijn" Date: Sun, 19 Oct 2025 06:32:00 +0200 Subject: [PATCH 1/7] Add improved DSC configuration --- hub/powertoys/dsc-configure/microsoft-dsc.md | 421 ++++++++++++ hub/powertoys/dsc-configure/overview.md | 128 ++++ hub/powertoys/dsc-configure/psdsc.md | 646 +++++++++++++++++++ 3 files changed, 1195 insertions(+) create mode 100644 hub/powertoys/dsc-configure/microsoft-dsc.md create mode 100644 hub/powertoys/dsc-configure/overview.md create mode 100644 hub/powertoys/dsc-configure/psdsc.md diff --git a/hub/powertoys/dsc-configure/microsoft-dsc.md b/hub/powertoys/dsc-configure/microsoft-dsc.md new file mode 100644 index 0000000000..87094e3f94 --- /dev/null +++ b/hub/powertoys/dsc-configure/microsoft-dsc.md @@ -0,0 +1,421 @@ +--- +title: Configure PowerToys with Microsoft DSC +description: >- + Learn how to configure PowerToys utilities using Microsoft Desired State + Configuration v3 with the PowerToys.DSC.exe command-line tool. Modern + declarative configuration for PowerToys. +ms.date: 10/19/2025 +ms.topic: how-to +no-loc: [PowerToys, Windows, Microsoft DSC, WinGet] +# customer intent: As a Windows power user or IT administrator, I want to +# configure PowerToys using Microsoft DSC v3 and PowerToys.DSC.exe. +--- + +# Configure PowerToys with Microsoft DSC + +PowerToys includes a Microsoft Desired State Configuration (DSC) v3 +implementation through the `PowerToys.DSC.exe` command-line tool, enabling +modern declarative configuration management of PowerToys settings. + +## Overview + +The `PowerToys.DSC.exe` command line-tool for PowerToys provides: + +- Standalone configuration tool without PowerShell dependencies +- Individual DSC resource modules for each PowerToys utility +- Standard DSC v3 operations: get, set, test, export, schema, manifest +- JSON schema generation for validation +- DSC manifest generation for resource discovery +- Integration with WinGet and other orchestrator tools + +**Available since:** PowerToys v0.95.0 + +## Prerequisites + +- **PowerToys v0.95.0 or later** - The `PowerToys.DSC.exe` tool is included + with PowerToys starting from version 0.95.0 + +### Optional: Using orchestration tools + +If you want to use orchestration tools to manage PowerToys configuration: + +- **WinGet v1.6.2631 or later** - Required for WinGet configuration file + integration. Download from the [WinGet releases page][07] +- **Microsoft DSC (dsc.exe) v3.1.1 or later** - Required for using + Microsoft DSC configuration documents with the `dsc` command-line tool. + Download from the [DSC releases page][08] + +> [!NOTE] +> These orchestration tools are optional. You can use `PowerToys.DSC.exe` +> directly without WinGet or `dsc.exe` for standalone configuration management. + +## Location + +The `PowerToys.DSC.exe` executable is installed with PowerToys: + +- **Per-user installation:** + `%LOCALAPPDATA%\PowerToys\PowerToys.DSC.exe` +- **Machine-wide installation:** + `%ProgramFiles%\PowerToys\PowerToys.DSC.exe` + +You can add the PowerToys directory to your `PATH` environment variable for +easier access, or use the full path to the executable. + +## Usage + +Microsoft DSC for PowerToys supports three usage patterns: + +### 1. Direct command-line execution + +Execute DSC operations directly using the `PowerToys.DSC.exe` tool: + +```powershell +# Get current settings for a module +PowerToys.DSC.exe get --resource 'settings' --module Awake + +# Set settings for a module +$input = '{"settings":{"properties":{"keepDisplayOn":true,"mode":1},"name":"Awake","version":"0.0.1"}}' +PowerToys.DSC.exe set --resource 'settings' --module Awake --input $input + +# Test if settings match desired state +PowerToys.DSC.exe test --resource 'settings' --module Awake --input $input +``` + +### 2. Microsoft DSC configuration documents + +Use standard Microsoft DSC configuration documents to define PowerToys settings: + +```yaml +# powertoys-config.dsc.yaml +$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json +resources: + - name: Configure Awake + type: Microsoft.PowerToys/AwakeSettings + properties: + settings: + properties: + keepDisplayOn: true + mode: 1 + name: Awake + version: 0.0.1 +``` + +Apply the configuration using the `dsc` command-line interface (when +available) or through WinGet configuration. + +### 3. WinGet configuration integration + +Integrate PowerToys configuration with WinGet package installation: + +```yaml +# winget-powertoys.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: Configure FancyZones + type: Microsoft.PowerToys/FancyZonesSettings + properties: + settings: + properties: + fancyzones_shiftDrag: true + fancyzones_mouseSwitch: true + name: FancyZones + version: 1.0 +``` + +Apply with WinGet: + +```powershell +winget configure winget-powertoys.yaml +``` + +## Common operations + +### List supported modules + +List all PowerToys utilities that can be configured: + +```powershell +PowerToys.DSC.exe modules --resource 'settings' +``` + +### Get current configuration + +Retrieve the current state of a module's settings: + +```powershell +# Get settings for a specific module +PowerToys.DSC.exe get --resource 'settings' --module FancyZones + +# Format output for readability +PowerToys.DSC.exe get --resource 'settings' --module Awake | ConvertFrom-Json | ConvertTo-Json -Depth 10 +``` + +### Apply configuration + +Set the desired configuration for a module: + +```powershell +# Define desired configuration (using PowerShell) +$config = @{ + settings = @{ + properties = @{ + fancyzones_shiftDrag = $true + fancyzones_mouseSwitch = $true + fancyzones_overrideSnapHotkeys = $true + } + name = "FancyZones" + version = "1.0" + } +} | ConvertTo-Json -Depth 10 -Compress + +# Apply configuration +PowerToys.DSC.exe set --resource 'settings' --module FancyZones --input $config +``` + +### Test configuration + +Verify whether current settings match the desired state: + +```powershell +$desired = @{ + settings = @{ + properties = @{ + keepDisplayOn = $true + mode = 1 + } + name = "Awake" + version = "0.0.1" + } +} | ConvertTo-Json -Depth 10 -Compress + +# Test for drift +$result = PowerToys.DSC.exe test --resource 'settings' --module Awake --input $desired | ConvertFrom-Json + +if ($result._inDesiredState) { + Write-Host "Configuration matches desired state" +} else { + Write-Host "Configuration has drifted" +} +``` + +### Generate JSON schema + +Get the JSON schema for a module to understand available properties: + +```powershell +# Get schema for a module +PowerToys.DSC.exe schema --resource 'settings' --module ColorPicker + +# Format for readability +PowerToys.DSC.exe schema --resource 'settings' --module ColorPicker | ConvertFrom-Json | ConvertTo-Json -Depth 10 +``` + +### Generate DSC manifests + +Create DSC resource manifest files: + +```powershell +# Generate manifest for a specific module +PowerToys.DSC.exe manifest --resource 'settings' --module Awake --outputDir C:\manifests + +# Generate manifests for all modules +PowerToys.DSC.exe manifest --resource 'settings' --outputDir C:\manifests + +# Print manifest to console +PowerToys.DSC.exe manifest --resource 'settings' --module FancyZones +``` + +## Configuration examples + +### Example 1: Configure FancyZones + +```yaml +# fancyzones-config.dsc.yaml +$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json +resources: + - name: Configure FancyZones window management + type: Microsoft.PowerToys/FancyZonesSettings + properties: + settings: + properties: + fancyzones_shiftDrag: true + fancyzones_mouseSwitch: false + fancyzones_overrideSnapHotkeys: true + fancyzones_displayOrWorkAreaChange_moveWindows: true + fancyzones_zoneSetChange_moveWindows: true + name: FancyZones + version: 1.0 +``` + +### Example 2: Configure multiple utilities + +```yaml +# multi-utility-config.dsc.yaml +$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json +resources: + - name: Configure general app settings + type: Microsoft.PowerToys/AppSettings + properties: + settings: + properties: + Enabled: + Awake: true + FancyZones: true + PowerRename: true + ColorPicker: true + run_elevated: true + startup: true + name: App + version: 1.0 + + - name: Configure Awake + type: Microsoft.PowerToys/AwakeSettings + properties: + settings: + properties: + keepDisplayOn: true + mode: 1 + name: Awake + version: 0.0.1 + + - name: Configure ColorPicker + type: Microsoft.PowerToys/ColorPickerSettings + properties: + settings: + properties: + changecursor: true + copiedcolorrepresentation: "HEX" + name: ColorPicker + version: 1.0 +``` + +### Example 3: Install and configure with WinGet + +```yaml +# complete-setup.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 + ensure: Present + + - name: Enable utilities + type: Microsoft.PowerToys/AppSettings + properties: + settings: + properties: + startup: true + theme: "dark" + name: App + version: 1.0 + + - name: Configure PowerToys Run + type: Microsoft.PowerToys/PowerLauncherSettings + properties: + settings: + properties: + maximum_number_of_results: 8 + clear_input_on_launch: true + name: PowerLauncher + version: 1.0 +``` + +## Available resources + +Microsoft DSC for PowerToys provides individual resource types for each +utility. The resource type naming follows the pattern: +`Microsoft.PowerToys/Settings` + +Common resources include: + +- `Microsoft.PowerToys/AppSettings` - General application settings +- `Microsoft.PowerToys/AlwaysOnTopSettings` - Always On Top configuration +- `Microsoft.PowerToys/AwakeSettings` - Awake keep-awake settings +- `Microsoft.PowerToys/ColorPickerSettings` - Color Picker settings +- `Microsoft.PowerToys/FancyZonesSettings` - FancyZones window management +- `Microsoft.PowerToys/PowerLauncherSettings` - PowerToys Run settings +- `Microsoft.PowerToys/PowerRenameSettings` - PowerRename bulk rename +- And many more for each PowerToys utility + +For a complete list of resources and their properties, see the +[developer documentation][01]. + +## Advanced usage + +### Backup and restore configuration + +Export all module configurations for backup: + +```powershell +# Get list of all modules +$modules = PowerToys.DSC.exe modules --resource 'settings' + +# Export each module +$backup = @{} +foreach ($module in $modules) { + $config = PowerToys.DSC.exe export --resource 'settings' --module $module | ConvertFrom-Json + $backup[$module] = $config +} + +# Save backup +$backup | ConvertTo-Json -Depth 10 | Out-File powertoys-backup.json + +# Restore from backup +$restore = Get-Content powertoys-backup.json | ConvertFrom-Json +foreach ($module in $restore.PSObject.Properties.Name) { + $input = $restore.$module | ConvertTo-Json -Depth 10 -Compress + PowerToys.DSC.exe set --resource 'settings' --module $module --input $input +} +``` + +## Migrating from PowerShell DSC + +If you're migrating from the PowerShell DSC module +(`Microsoft.PowerToys.Configure`), note these key differences: + +1. **Resource naming:** PowerShell DSC uses a single `PowerToysConfigure` + resource with nested properties. Microsoft DSC uses individual resources + per utility (e.g., `AwakeSettings`, `FancyZonesSettings`) + +2. **Property format:** Some property names may differ slightly. Use the + `schema` command to see available properties for each module + +3. **Configuration structure:** Microsoft DSC uses the `settings` wrapper with + `properties`, `name`, and `version` fields + +4. **No PowerShell required:** Microsoft DSC runs standalone without + PowerShell dependencies + +## See also + +- [Configure PowerToys with DSC overview][02] +- [Configure with PowerShell DSC][03] +- [PowerToys DSC developer documentation][01] +- [PowerToys installation guide][04] +- [Microsoft DSC documentation][05] +- [WinGet configuration documentation][06] + + +[01]: ../../../dsc/overview.md +[02]: overview.md +[03]: psdsc.md +[04]: ../install.md +[05]: https://learn.microsoft.com/powershell/dsc/overview +[06]: https://learn.microsoft.com/windows/package-manager/configuration/ +[07]: https://github.com/microsoft/winget-cli/releases +[08]: https://github.com/PowerShell/DSC/releases diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md new file mode 100644 index 0000000000..fe3f35b5c3 --- /dev/null +++ b/hub/powertoys/dsc-configure/overview.md @@ -0,0 +1,128 @@ +--- +title: Configure PowerToys with Desired State Configuration +description: >- + Learn about the two approaches to configure PowerToys using Desired State + Configuration: PowerShell DSC for legacy automation and Microsoft DSC for + modern declarative configuration. +ms.date: 10/19/2025 +ms.topic: overview +no-loc: [PowerToys, Windows, DSC, WinGet] +# customer intent: As a Windows power user or IT administrator, I want to +# understand the available DSC options for PowerToys configuration. +--- + +# Configure PowerToys with Desired State Configuration + +PowerToys supports two Desired State Configuration (DSC) approaches for +automating and managing PowerToys settings across Windows systems. Each +approach serves different use cases and is designed for specific workflows. + +## Understanding DSC in PowerToys + +Desired State Configuration enables you to define, deploy, and enforce +configuration settings declaratively. Instead of writing scripts that perform +configuration steps, you describe the desired end state, and DSC ensures the +system matches that state. + +PowerToys offers two distinct DSC implementations: + +1. **PowerShell DSC (PSDSC)** - A legacy PowerShell-based module using DSC v2 +2. **Microsoft DSC** - A modern, cross-platform implementation using DSC v3 + +> [!NOTE] +> These are two separate implementations with different capabilities, +> syntaxes, and use cases. Choose the approach that best fits your +> infrastructure and requirements. + +## Choosing the right approach + +### Use PowerShell DSC when + +- You have existing PowerShell DSC infrastructure and workflows. +- You're using PowerShell 7.4 or higher with PSDesiredStateConfiguration 2.0.7+. +- You prefer PowerShell-based configuration management. + +**Available since:** PowerToys v0.80.0 + +### Use Microsoft DSC when + +- You need standalone PowerToys configuration without PowerShell dependencies. +- You're adopting Microsoft DSC standards and tooling. +- You want direct command-line configuration with `PowerToys.DSC.exe`. +- You need JSON schema validation and manifest generation. +- You're building automation with the latest Microsft DSC ecosystem. + +**Available since:** PowerToys v0.95.0 + +## Key differences + +| Feature | PowerShell DSC | Microsoft DSC | +|--------------------------|-----------------------------------------------------|------------------------------------------------------------------| +| **DSC Version** | v2 | v3 | +| **Prerequisites** | PowerShell 7.2+, PSDesiredStateConfiguration 2.0.7+ | None (standalone) | +| **Module Name** | `Microsoft.PowerToys.Configure` | Resource types under `Microsoft.PowerToys/` | +| **Command-line tool** | PowerShell cmdlets | `PowerToys.DSC.exe` | +| **Configuration format** | YAML (WinGet configuration) | YAML (Microsoft DSC configuration documents), JSON or Bicep JSON | +| **Resource model** | Single `PowerToysConfigure` resource | Individual resources per module (e.g., `AwakeSettings`) | +| **Platform support** | Windows only | Cross-platform ready | +| **Schema support** | Limited | Full JSON schema generation | +| **Manifest generation** | No | Yes | + +> [!IMPORTANT] +> While Microsoft DSC is cross-platform ready and can run on Windows, Linux, +> and macOS, PowerToys itself is a Windows-only application. The Microsoft DSC +> implementation provides a modern, cross-platform architecture that aligns +> with the broader DSC v3 ecosystem, but PowerToys configuration can only be +> applied on Windows systems where PowerToys is installed. + +## Configuration scope + +Both approaches support configuring all PowerToys utilities: + +- General application settings (startup, theme, updates) +- Always On Top +- Awake +- Color Picker +- Crop And Lock +- Environment Variables +- FancyZones +- File Locksmith +- Find My Mouse +- Hosts File Editor +- Image Resizer +- Keyboard Manager +- Mouse Highlighter +- Mouse Jump +- Mouse Pointer Crosshairs +- Mouse Without Borders +- Peek +- PowerToys Run (PowerLauncher) +- Quick Accent (PowerAccent) +- Registry Preview +- Screen Ruler (MeasureTool) +- Shortcut Guide +- Text Extractor (PowerOCR) +- Video Conference Mute +- Workspaces + +## Next steps + +Choose your DSC approach and get started: + +- **[Configure with PowerShell DSC][01]** - Learn about the PowerShell-based + DSC module and WinGet configuration integration +- **[Configure with Microsoft DSC][02]** - Explore the modern Microsoft DSC + implementation with PowerToys.DSC.exe + +## See also + +- [PowerToys installation guide][03] +- [WinGet Configuration documentation][04] +- [Microsoft DSC documentation][05] + + +[01]: psdsc.md +[02]: microsoft-dsc.md +[03]: ../install.md +[04]: https://learn.microsoft.com/windows/package-manager/configuration/ +[05]: https://learn.microsoft.com/powershell/dsc/overview diff --git a/hub/powertoys/dsc-configure/psdsc.md b/hub/powertoys/dsc-configure/psdsc.md new file mode 100644 index 0000000000..6815b0535d --- /dev/null +++ b/hub/powertoys/dsc-configure/psdsc.md @@ -0,0 +1,646 @@ +--- +title: Configure PowerToys with PowerShell DSC +description: >- + Learn how to configure PowerToys utilities using the PowerShell Desired State + Configuration (DSC) module with WinGet configuration files. Complete + reference for all available settings and properties. +ms.date: 10/19/2025 +ms.topic: how-to +no-loc: [PowerToys, Windows, PSDSC, WinGet] +# customer intent: As a Windows power user or IT administrator, I want to +# configure PowerToys using PowerShell DSC and WinGet configuration files. +--- + +# Configure PowerToys with PowerShell DSC + +PowerToys includes a PowerShell Desired State Configuration (DSC) module that +integrates with WinGet configuration files, enabling automated deployment and +configuration of PowerToys utilities across Windows systems. + +## Overview + +The `Microsoft.PowerToys.Configure` DSC resource allows you to: + +- Install and configure PowerToys in a single WinGet configuration file. +- Declare desired settings for PowerToys utilities. +- Version control your PowerToys configuration. +- Deploy consistent PowerToys settings across multiple machines. +- Integrate with existing PowerShell DSC workflows. + +**Available since:** PowerToys v0.80.0 + +## Prerequisites + +Before using PowerShell DSC with PowerToys, ensure you have: + +- **PowerShell 7.2 or higher** - Required for DSC v2 support +- **PSDesiredStateConfiguration 2.0.7 or later** - The PowerShell DSC module. + Refer to the [PowerShell DSC documentation][01] for installation instructions +- **WinGet v1.6.2631 or later** - For configuration file support. Download from + the [WinGet releases page][02] +- **PowerToys** - Installed via the [PowerToys installer][03] + +## Installation + +The `Microsoft.PowerToys.Configure` module is automatically installed with +PowerToys. The module location depends on the installation scope: + +- **Per-user installation:** + `%USERPROFILE%\Documents\PowerShell\Modules\Microsoft.PowerToys.Configure` +- **Machine-wide installation:** + `%ProgramFiles%\WindowsPowerShell\Modules\Microsoft.PowerToys.Configure` + +## Usage + +### Direct invocation with PowerShell + +You can invoke the DSC resource directly using PowerShell: + +```powershell +Invoke-DscResource -Name PowerToysConfigure -Method Set ` + -ModuleName Microsoft.PowerToys.Configure ` + -Property @{ + Awake = @{ + Enabled = $false + Mode = "TIMED" + IntervalMinutes = "10" + } + } +``` + +### WinGet configuration files + +The recommended approach is to use WinGet configuration files (YAML format) to +define your PowerToys settings. This allows you to install PowerToys and apply +configuration in a single, declarative file. + +**Example configuration:** + +```yaml +# configuration.dsc.yaml +properties: + resources: + - resource: Microsoft.WinGet.DSC/WinGetPackage + id: installPowerToys + directives: + description: Install PowerToys + allowPrerelease: true + settings: + id: Microsoft.PowerToys + source: winget + + - resource: Microsoft.PowerToys.Configure/PowerToysConfigure + dependsOn: + - installPowerToys + directives: + description: Configure PowerToys + settings: + ShortcutGuide: + Enabled: false + OverlayOpacity: 50 + FancyZones: + Enabled: true + FancyzonesEditorHotkey: "Shift+Ctrl+Alt+F" + FileLocksmith: + Enabled: false + configurationVersion: 0.2.0 +``` + +**Apply the configuration:** + +```powershell +winget configure .\configuration.dsc.yaml +``` + +This command installs the latest version of PowerToys (or ensures it's already +installed) and applies the specified settings. + +## Configuration examples + +More examples can be found in the [PowerToys repository][04]. + +### Example 1: Enable and configure FancyZones + +```yaml +properties: + resources: + - resource: Microsoft.PowerToys.Configure/PowerToysConfigure + directives: + description: Configure FancyZones + settings: + FancyZones: + Enabled: true + FancyzonesShiftDrag: true + FancyzonesMouseSwitch: false + FancyzonesOverrideSnapHotkeys: true + FancyzonesEditorHotkey: "Win+Shift+`" + configurationVersion: 0.2.0 +``` + +### Example 2: Configure multiple utilities + +```yaml +properties: + resources: + - resource: Microsoft.PowerToys.Configure/PowerToysConfigure + directives: + description: Configure multiple PowerToys utilities + settings: + GeneralSettings: + Startup: true + Theme: "dark" + EnableWarningsElevatedApps: true + ColorPicker: + Enabled: true + ActivationShortcut: "Win+Shift+C" + CopiedColorRepresentation: "HEX" + PowerRename: + Enabled: true + MRUEnabled: true + MaxMRUSize: 10 + Awake: + Enabled: true + Mode: "INDEFINITE" + KeepDisplayOn: true + configurationVersion: 0.2.0 +``` + +### Example 3: Install specific PowerToys version and configure + +```yaml +properties: + resources: + - resource: Microsoft.WinGet.DSC/WinGetPackage + id: installPowerToys + directives: + description: Install PowerToys version 0.95.0 + settings: + id: Microsoft.PowerToys + source: winget + version: "0.95.0" + + - resource: Microsoft.PowerToys.Configure/PowerToysConfigure + dependsOn: + - installPowerToys + directives: + description: Configure PowerToys utilities + settings: + AlwaysOnTop: + Enabled: true + Hotkey: "Win+Ctrl+T" + FrameEnabled: true + FrameThickness: 5 + FrameColor: "#FF0000FF" + configurationVersion: 0.2.0 +``` + +## Available configuration settings by module + +The following sections provide a complete reference of all available +configuration settings for each PowerToys utility. + +### AlwaysOnTop + +| Name | Type | Description | Available | +| :---------------------- | :----------- | :---------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| Hotkey | KeyboardKeys | Customize the shortcut to pin or unpin an app window. | ✅ Available | +| FrameEnabled | Boolean | Show a border around the pinned window. | ✅ Available | +| FrameThickness | Int | Border thickness in pixels. | ✅ Available | +| FrameColor | String | Specify a color in a `#FFFFFFFF` format. | ✅ Available | +| FrameOpacity | Int | Border opacity in percentage. | ✅ Available | +| FrameAccentColor | Boolean | Use a custom FrameColor value. | ✅ Available | +| SoundEnabled | Boolean | Play a sound when pinning a window. | ✅ Available | +| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | +| ExcludedApps | String | '\r'-separated list of executable names to exclude from pinning on top. | ✅ Available | +| RoundCornersEnabled | Boolean | Enable round corners. | ✅ Available | + +### Awake + +| Name | Type | Description | Available | +| :----------------- | :------------- | :---------------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| KeepDisplayOn | Boolean | This setting is only available when keeping the PC awake. | ✅ Available | +| Mode | AwakeMode | Possible values: PASSIVE, INDEFINITE, TIMED, EXPIRABLE. | ✅ Available | +| IntervalHours | UInt32 | When using TIMED mode, specifies the number of hours. | ✅ Available | +| IntervalMinutes | UInt32 | When using TIMED mode, specifies the number of minutes. | ✅ Available | +| ExpirationDateTime | DateTimeOffset | When using EXPIRABLE mode, specifies the date and time in a format parsable with `DateTimeOffset.TryParse`. | ✅ Available | + +### ColorPicker + +| Name | Type | Description | Available | +| :------------------------ | :-------------------------- | :------------------------------------------------------------------------------ | :--------------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | +| CopiedColorRepresentation | String | The default color representation to be used. Example :"HEX". | ✅ Available | +| ActivationAction | ColorPickerActivationAction | Possible values: OpenEditor, OpenColorPickerAndThenEditor, OpenOnlyColorPicker. | ✅ Available | +| VisibleColorFormats | — | — | ❌ Not available | +| ShowColorName | Boolean | This will show the name of the color when picking a color. | ✅ Available | + +> [!NOTE] +> Configuring custom color formats through DSC is not yet supported. + +### CropAndLock + +| Name | Type | Description | Available | +| :-------------- | :----------- | :-------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ReparentHotkey | KeyboardKeys | Shortcut to crop an application's window into a cropped window. | ✅ Available | +| ThumbnailHotkey | KeyboardKeys | Shortcut to crop and create a thumbnail of another window. | ✅ Available | + +### EnvironmentVariables + +| Name | Type | Description | Available | +| :------------------ | :------ | :-------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| LaunchAdministrator | Boolean | Needs to be launched as administrator in order to make changes to the system environment variables. | ✅ Available | + +### FancyZones + +| Name | Type | Description | Available | +| :---------------------------------------------- | :----------- | :------------------------------------------------------------------------------------ | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| FancyzonesShiftDrag | Boolean | Hold Shift key to activate zones while dragging a window. | ✅ Available | +| FancyzonesMouseSwitch | Boolean | Use a non-primary mouse button to toggle zone activation. | ✅ Available | +| FancyzonesMouseMiddleClickSpanningMultipleZones | Boolean | Use middle-click mouse button to toggle multiple zones spanning. | ✅ Available | +| FancyzonesOverrideSnapHotkeys | Boolean | This overrides the Windows Snap shortcut (Win + arrow) to move windows between zones. | ✅ Available | +| FancyzonesMoveWindowsAcrossMonitors | Boolean | Move windows between zones across all monitors. | ✅ Available | +| FancyzonesMoveWindowsBasedOnPosition | Boolean | Move windows based on relative position or zone index. | ✅ Available | +| FancyzonesOverlappingZonesAlgorithm | Int | When multiple zones overlap algorithm index. | ✅ Available | +| FancyzonesDisplayOrWorkAreaChangeMoveWindows | Boolean | Keep windows in their zones when the screen resolution or work area changes. | ✅ Available | +| FancyzonesZoneSetChangeMoveWindows | Boolean | During zone layout changes, windows assigned to a zone will match new size/positions. | ✅ Available | +| FancyzonesAppLastZoneMoveWindows | Boolean | Move newly created windows to their last known zone. | ✅ Available | +| FancyzonesOpenWindowOnActiveMonitor | Boolean | Move newly created windows to the current active monitor (Experimental). | ✅ Available | +| FancyzonesRestoreSize | Boolean | Restore the original size of windows when unsnapping. | ✅ Available | +| FancyzonesQuickLayoutSwitch | Boolean | Enable quick layout switch. | ✅ Available | +| FancyzonesFlashZonesOnQuickSwitch | Boolean | Flash zones when switching layout. | ✅ Available | +| UseCursorposEditorStartupscreen | Boolean | Open editor on the display where the mouse point is. | ✅ Available | +| FancyzonesShowOnAllMonitors | Boolean | Show zones on all monitors while dragging a window. | ✅ Available | +| FancyzonesSpanZonesAcrossMonitors | Boolean | Allow zones to span across monitors. | ✅ Available | +| FancyzonesMakeDraggedWindowTransparent | Boolean | Make dragged window transparent. | ✅ Available | +| FancyzonesAllowChildWindowSnap | Boolean | Allow child windows snapping. | ✅ Available | +| FancyzonesDisableRoundCornersOnSnap | Boolean | Disable round corners when window is snapped. | ✅ Available | +| FancyzonesZoneHighlightColor | String | If not using FancyzonesSystemTheme, highlight color to use in `#FFFFFFFF` format. | ✅ Available | +| FancyzonesHighlightOpacity | Int | Zone opacity in percentage. | ✅ Available | +| FancyzonesEditorHotkey | KeyboardKeys | Customize the shortcut to activate this module. | ✅ Available | +| FancyzonesWindowSwitching | Boolean | Switch between windows in the current zone. | ✅ Available | +| FancyzonesNextTabHotkey | KeyboardKeys | Next window shortcut. | ✅ Available | +| FancyzonesPrevTabHotkey | KeyboardKeys | Previous window shortcut. | ✅ Available | +| FancyzonesExcludedApps | String | '\r'-separated list of executable names to exclude from snapping. | ✅ Available | +| FancyzonesBorderColor | String | If not using FancyzonesSystemTheme, border color to use in `#FFFFFFFF` format. | ✅ Available | +| FancyzonesInActiveColor | String | If not using FancyzonesSystemTheme, inactive color to use in `#FFFFFFFF` format. | ✅ Available | +| FancyzonesNumberColor | String | If not using FancyzonesSystemTheme, number color to use in `#FFFFFFFF` format. | ✅ Available | +| FancyzonesSystemTheme | Boolean | Use system theme for zone appearance. | ✅ Available | +| FancyzonesShowZoneNumber | Boolean | Show zone number. | ✅ Available | + +> [!NOTE] +> Configuring layouts through DSC is not yet supported. + +### FileLocksmith + +| Name | Type | Description | Available | +| :---------------------- | :------ | :------------------------------------------------------------------------------------ | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ExtendedContextMenuOnly | Boolean | Show File Locksmith in extended context menu only or in default context menu as well. | ✅ Available | + +### FindMyMouse + +| Name | Type | Description | Available | +| :---------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationMethod | Int | Activation method index. | ✅ Available | +| ActivationShortcut | HotkeySettings | Custom activation shortcut when using Custom for ActivationMethod. | ✅ Available | +| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | +| BackgroundColor | String | Background color in `#FFFFFFFF` format. | ✅ Available | +| SpotlightColor | String | Spotlight color in `#FFFFFFFF` format. | ✅ Available | +| OverlayOpacity | Int | Overlay opacity in percentage. | ✅ Available | +| SpotlightRadius | Int | Spotlight radius in px. | ✅ Available | +| AnimationDurationMs | Int | Animation duration in milliseconds. | ✅ Available | +| SpotlightInitialZoom | Int | Spotlight zoom factor at animation start. | ✅ Available | +| ExcludedApps | String | '\r'-separated list of executable names to prevent module activation. | ✅ Available | +| ShakingMinimumDistance | Int | When using shake mouse ActivationMethod, the minimum distance for mouse shaking activation, for adjusting sensitivity. | ✅ Available | +| ShakingIntervalMs | Int | When using shake mouse ActivationMethod, the span of time during which we track mouse movement to detect shaking, for adjusting sensitivity. | ✅ Available | +| ShakingFactor | Int | When using shake mouse ActivationMethod, Shake factor in percentage. | ✅ Available | + +### Hosts + +| Name | Type | Description | Available | +| :---------------------- | :--------------------------- | :------------------------------------------------------------------------------------------------ | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| LaunchAdministrator | Boolean | Needs to be opened as administrator in order to make changes to the system environment variables. | ✅ Available | +| ShowStartupWarning | Boolean | Show a warning at startup. | ✅ Available | +| LoopbackDuplicates | Boolean | Consider loopback addresses as duplicates. | ✅ Available | +| AdditionalLinesPosition | HostsAdditionalLinesPosition | Possible values: Top, Bottom. | ✅ Available | +| Encoding | HostsEncoding | Possible values: Utf8, Utf8Bom. | ✅ Available | + +### ImageResizer + +| Name | Type | Description | Available | +| :----------------------------- | :------ | :------------------------------------------------------ | :--------------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ImageresizerSelectedSizeIndex | Int | Default size preset index. | ✅ Available | +| ImageresizerShrinkOnly | Boolean | Make pictures smaller but not larger. | ✅ Available | +| ImageresizerReplace | Boolean | Overwrite files. | ✅ Available | +| ImageresizerIgnoreOrientation | Boolean | Ignore the orientation of pictures. | ✅ Available | +| ImageresizerJpegQualityLevel | Int | JPEG quality level in percentage. | ✅ Available | +| ImageresizerPngInterlaceOption | Int | PNG interlacing option index. | ✅ Available | +| ImageresizerTiffCompressOption | Int | Tiff compression index. | ✅ Available | +| ImageresizerFileName | String | This format is used as the filename for resized images. | ✅ Available | +| ImageresizerSizes | — | — | ❌ Not available | +| ImageresizerKeepDateModified | Boolean | Remove metadata that doesn't affect rendering. | ✅ Available | +| ImageresizerFallbackEncoder | String | Fallback encoder to use. | ✅ Available | +| ImageresizerCustomSize | — | — | ❌ Not available | + +> [!NOTE] +> Configuring custom sizes through DSC is not yet supported. + +### KeyboardManager + +| Name | Type | Description | Available | +| :--------------------- | :------ | :---------------------------------- | :--------------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActiveConfiguration | — | — | ❌ Not available | +| KeyboardConfigurations | — | — | ❌ Not available | + +> [!NOTE] +> Configuring remappings through DSC is not yet supported. + +### MeasureTool + +Measure Tool is the internal name for Screen Ruler. + +| Name | Type | Description | Available | +| :--------------------------- | :------------- | :-------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to bring up the command bar. | ✅ Available | +| ContinuousCapture | Boolean | Capture screen continuously during measuring. | ✅ Available | +| DrawFeetOnCross | Boolean | Adds feet to the end of cross lines. | ✅ Available | +| PerColorChannelEdgeDetection | Boolean | Enable a different edge detection algorithm. | ✅ Available | +| PixelTolerance | Int | Pixel Tolerance for edge detection. | ✅ Available | +| MeasureCrossColor | String | Line color in `#FFFFFFFF` format. | ✅ Available | +| DefaultMeasureStyle | Int | Default measure style index. | ✅ Available | + +### MouseHighlighter + +| Name | Type | Description | Available | +| :---------------------- | :------------- | :------------------------------------------------------ | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to turn on or off this mode. | ✅ Available | +| LeftButtonClickColor | String | Primary button highlight color in `#FFFFFFFF` format. | ✅ Available | +| RightButtonClickColor | String | Secondary button highlight color in `#FFFFFFFF` format. | ✅ Available | +| AlwaysColor | String | Always highlight color in `#FFFFFFFF` format. | ✅ Available | +| HighlightRadius | Int | Highlight radius in pixels. | ✅ Available | +| HighlightFadeDelayMs | Int | Fade delay in milliseconds. | ✅ Available | +| HighlightFadeDurationMs | Int | Fade duration in milliseconds. | ✅ Available | +| AutoActivate | Boolean | Automatically activate on utility startup. | ✅ Available | + +### MouseJump + +| Name | Type | Description | Available | +| :----------------- | :--------------------- | :-------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to turn on or off this mode. | ✅ Available | +| ThumbnailSize | MouseJumpThumbnailSize | Thumbnail size. | ✅ Available | + +### MousePointerCrosshairs + +| Name | Type | Description | Available | +| :----------------------------- | :------------- | :-------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to show/hide the crosshairs. | ✅ Available | +| CrosshairsColor | String | Crosshairs color in `#FFFFFFFF`. | ✅ Available | +| CrosshairsOpacity | Int | Crosshairs opacity in percentage. | ✅ Available | +| CrosshairsRadius | Int | Crosshairs center radius in pixels. | ✅ Available | +| CrosshairsThickness | Int | Crosshairs thickness in pixels. | ✅ Available | +| CrosshairsBorderColor | String | Crosshairs border color in `#FFFFFFFF` format. | ✅ Available | +| CrosshairsBorderSize | Int | Crosshairs border size in pixels. | ✅ Available | +| CrosshairsAutoHide | Boolean | Automatically hide crosshairs when the mouse pointer is hidden. | ✅ Available | +| CrosshairsIsFixedLengthEnabled | Boolean | Fix crosshairs length. | ✅ Available | +| CrosshairsFixedLength | Int | Crosshairs fixed length in pixels. | ✅ Available | +| AutoActivate | Boolean | Automatically activate on utility startup. | ✅ Available | + +### MouseWithoutBorders + +| Name | Type | Description | Available | +| :------------------------------------ | :------------- | :-------------------------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ShowOriginalUI | Boolean | Show the original Mouse Without Borders UI. | ✅ Available | +| WrapMouse | Boolean | Move control back to the first machine when mouse moves past the last one. | ✅ Available | +| ShareClipboard | Boolean | If share clipboard stops working, Ctrl+Alt+Del then Esc may solve the problem. | ✅ Available | +| TransferFile | Boolean | If a file (<100MB) is copied, it will be transferred to the remote machine clipboard. | ✅ Available | +| HideMouseAtScreenEdge | Boolean | Hide mouse at the screen edge. | ✅ Available | +| DrawMouseCursor | Boolean | Mouse cursor may not be visible in Windows 10 and later versions of Windows when there is no physical mouse attached. | ✅ Available | +| ValidateRemoteMachineIP | Boolean | Reverse DNS lookup to validate machine IP Address. | ✅ Available | +| SameSubnetOnly | Boolean | Only connect to machines in the same intranet NNN.NNN.*.* (only works when both machines have IPv4 enabled). | ✅ Available | +| BlockScreenSaverOnOtherMachines | Boolean | Block screen saver on other machines. | ✅ Available | +| MoveMouseRelatively | Boolean | Use this option when remote machine's monitor settings are different, or remote machine has multiple monitors. | ✅ Available | +| BlockMouseAtScreenCorners | Boolean | Block mouse at screen corners to avoid accident machine-switch at screen corners. | ✅ Available | +| ShowClipboardAndNetworkStatusMessages | Boolean | Show clipboard and network status messages. | ✅ Available | +| EasyMouse | Int | Easy Mouse mode index. | ✅ Available | +| HotKeySwitchMachine | Int | Shortcut to switch between machines index. | ✅ Available | +| ToggleEasyMouseShortcut | HotkeySettings | Shortcut to toggle Easy Mouse. | ✅ Available | +| LockMachineShortcut | HotkeySettings | Shortcut to lock all machines. | ✅ Available | +| ReconnectShortcut | HotkeySettings | Shortcut to try reconnecting. | ✅ Available | +| Switch2AllPCShortcut | HotkeySettings | Shortcut to switch to multiple machine mode. | ✅ Available | +| Name2IP | String | IP address mapping. | ✅ Available | + +### PastePlain + +| Name | Type | Description | Available | +| :----------------- | :------------- | :---------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | + +### Peek + +| Name | Type | Description | Available | +| :-------------------- | :------------- | :-------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | +| AlwaysRunNotElevated | Boolean | Always run not elevated, even when PowerToys is elevated. | ✅ Available | +| CloseAfterLosingFocus | Boolean | Automatically close the Peek window after it loses focus. | ✅ Available | + +### PowerAccent + +PowerAccent is the internal name for Quick Accent. + +| Name | Type | Description | Available | +| :------------------------ | :----------------------- | :----------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationKey | PowerAccentActivationKey | Possible values: LeftRightArrow, Space, Both. | ✅ Available | +| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | +| ToolbarPosition | String | Toolbar position index. | ✅ Available | +| InputTime | Int | Input time delay in milliseconds. | ✅ Available | +| SelectedLang | String | A character set to use. | ✅ Available | +| ExcludedApps | String | '\r'-separated list of executable names to prevent module activation if they're in a foreground. | ✅ Available | +| ShowUnicodeDescription | Boolean | Show the Unicode code and name of the currently selected character. | ✅ Available | +| SortByUsageFrequency | Boolean | Sort characters by usage frequency. | ✅ Available | +| StartSelectionFromTheLeft | Boolean | Start selection from the left. | ✅ Available | + +### PowerLauncher + +PowerLaucher is the internal name for PowerToys Run. + +| Name | Type | Description | Available | +| :-------------------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------ | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| OpenPowerLauncher | HotkeySettings | Customize the shortcut to activate the module. | ✅ Available | +| IgnoreHotkeysInFullscreen | Boolean | Ignore shortcuts in fullscreen mode. | ✅ Available | +| ClearInputOnLaunch | Boolean | Clear the previous query on open. | ✅ Available | +| TabSelectsContextButtons | Boolean | Tab through context buttons. | ✅ Available | +| Theme | Theme | Possible values: System, Light, Dark, HighContrastOne, HighContrastTwo, HighContrastBlack, HighContrastWhite. | ✅ Available | +| TitleFontSize | Int32 | Text size in points. | ✅ Available | +| Position | StartupPosition | Possible values: Cursor, PrimaryMonitor, Focus. | ✅ Available | +| UseCentralizedKeyboardHook | Boolean | Use centralized keyboard hook. | ✅ Available | +| SearchQueryResultsWithDelay | Boolean | Input Smoothing. | ✅ Available | +| SearchInputDelay | Int32 | Immediate plugins delay in milliseconds. | ✅ Available | +| SearchInputDelayFast | Int32 | Background execution plugins delay in milliseconds. | ✅ Available | +| SearchClickedItemWeight | Int32 | Selected item weight. | ✅ Available | +| SearchQueryTuningEnabled | Boolean | Results order tuning. | ✅ Available | +| SearchWaitForSlowResults | Boolean | Wait for slower plugin results before selecting top item in results. | ✅ Available | +| MaximumNumberOfResults | Int | Number of results shown before having to scroll. | ✅ Available | +| UsePinyin | Boolean | Use Pinyin. | ✅ Available | +| GenerateThumbnailsFromFiles | Boolean | Thumbnail generation for files is turned on. | ✅ Available | +| Plugins | explained in the next subsection | Thumbnail generation for files is turned on. | ✅ Available | + +#### PowerToys Run plugin configuration + +PowerToys Run plugins can be configured in the Plugins property. [A sample][09] +can be found in the PowerToys repository. + +These are the available properties to configure each plugin: + +| Name | Type | Description | +| :------------ | :------ | :------------------------------------------------------------------ | +| Name | String | Name of the plugin we want to configure | +| Disabled | Boolean | The plugin should be disabled | +| IsGlobal | Boolean | The results for this plugin are shown in the global results | +| ActionKeyword | String | Configure the action keyword of the plugin | +| WeightBoost | Int | The weight modifier to help in ordering the results for this plugin | + +> [!NOTE] +> Configuring additional properties of plugins through DSC is not yet supported. + +### PowerOcr + +PowerOcr is the internal name for Text Extractor. + +| Name | Type | Description | Available | +| :----------------- | :------------- | :-------------------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | +| PreferredLanguage | String | Should match the full name of one of the languages installed in the system. Example: "English (United States)". | ✅ Available | + +### PowerPreview + +| Name | Type | Description | Available | +| :-------------------------- | :------ | :---------------------------------------------------------------------------------------- | :----------- | +| EnableSvgPreview | Boolean | Scalable Vector Graphics Preview Handler Enabled state. | ✅ Available | +| SvgBackgroundColorMode | Int | Color mode index. | ✅ Available | +| SvgBackgroundSolidColor | String | When using Solid color SvgBackgroundColorMode, specifies the color in `#FFFFFFFF` format. | ✅ Available | +| SvgBackgroundCheckeredShade | Int | When using Checkered pattern SvgBackgroundColorMode, specifies the shade index. | ✅ Available | +| EnableSvgThumbnail | Boolean | Scalable Vector Graphics Thumbnail Generator Enabled state. | ✅ Available | +| EnableMdPreview | Boolean | Markdown Preview Handler Enabled state. | ✅ Available | +| EnableMonacoPreview | Boolean | Source code files Preview Handler Enabled state. | ✅ Available | +| EnableMonacoPreviewWordWrap | Boolean | Wrap text. | ✅ Available | +| MonacoPreviewTryFormat | Boolean | Try to format the source for preview. | ✅ Available | +| MonacoPreviewMaxFileSize | Int | Maximum file size to preview in KB. | ✅ Available | +| EnablePdfPreview | Boolean | Portable Document Format Preview Handler Enabled state. | ✅ Available | +| EnablePdfThumbnail | Boolean | Portable Document Format Thumbnail Generator Enabled state. | ✅ Available | +| EnableGcodePreview | Boolean | Geometric Code Preview Handler Enabled state. | ✅ Available | +| EnableGcodeThumbnail | Boolean | Geometric Code Thumbnail Generator Enabled state. | ✅ Available | +| EnableStlThumbnail | Boolean | Stereolithography Thumbnail Generator Enabled state. | ✅ Available | +| StlThumbnailColor | String | Thumbnail color in `#FFFFFFFF` format . | ✅ Available | +| EnableQoiPreview | Boolean | Quite OK Image Preview Handler Enabled state. | ✅ Available | +| EnableQoiThumbnail | Boolean | Quite OK Image Thumbnail Generator Enabled state. | ✅ Available | + +### PowerRename + +| Name | Type | Description | Available | +| :---------------------- | :------ | :--------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| MRUEnabled | Boolean | Enable auto-complete for the search & replace fields. | ✅ Available | +| MaxMRUSize | Int | Maximum number of recently used items to remember. | ✅ Available | +| ExtendedContextMenuOnly | Boolean | Show PowerRename in extended context menu only or in default context menu as well. | ✅ Available | +| UseBoostLib | Boolean | Use Boost Library. | ✅ Available | + +### RegistryPreview + +| Name | Type | Description | Available | +| :------------ | :------ | :-------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| DefaultRegApp | Boolean | Make Registry Preview default app for opening .reg files. | ✅ Available | + +### ShortcutGuide + +| Name | Type | Description | Available | +| :--------------------------------- | :------------- | :---------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| OpenShortcutGuide | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | +| OverlayOpacity | Int | Background opacity in percentage. | ✅ Available | +| UseLegacyPressWinKeyBehavior | Boolean | If ShortcutGuide should be activated by pressing the Windows key. | ✅ Available | +| PressTimeForGlobalWindowsShortcuts | Int | Press duration before showing global Windows shortcuts in milliseconds. | ✅ Available | +| PressTimeForTaskbarIconShortcuts | Int | Press duration before showing taskbar icon shortcuts in milliseconds. | ✅ Available | +| Theme | String | Theme index. | ✅ Available | +| DisabledApps | String | Turns off Shortcut Guide when these applications have focus. | ✅ Available | + +### VideoConference + +| Name | Type | Description | Available | +| :---------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| Enabled | Boolean | The enabled state for this utility. | ✅ Available | +| MuteCameraAndMicrophoneHotkey | KeyboardKeys | Shortcut for muting the camera and microphone. | ✅ Available | +| MuteMicrophoneHotkey | KeyboardKeys | Shortcut for muting the microphone. | ✅ Available | +| PushToTalkMicrophoneHotkey | KeyboardKeys | Shortcut for push to talk. | ✅ Available | +| PushToReverseEnabled | Boolean | If enabled, allows both push to talk and push to mute, depending on microphone state. | ✅ Available | +| MuteCameraHotkey | KeyboardKeys | Shortcut for muting the camera. | ✅ Available | +| SelectedCamera | String | Device name. | ✅ Available | +| SelectedMicrophone | String | Device name or [All]. | ✅ Available | +| ToolbarPosition | String | Toolbar position option: "Top center", "Bottom center", "Top right corner", "Top left corner", "Bottom right corner", "Bottom left corner". | ✅ Available | +| ToolbarMonitor | String | Toolbar monitor option: "Main monitor", "All monitors". | ✅ Available | +| CameraOverlayImagePath | String | Path to the image used for the camera overlay. | ✅ Available | +| ToolbarHide | String | When to hide the toolbar: "Never", "When both camera and microphone are unmuted", "When both camera and microphone are muted", "After timeout". | ✅ Available | +| StartupAction | String | Startup action: "Nothing", "Unmute", "Mute". | ✅ Available | + +### GeneralSettings + +| Name | Type | Description | Available | +| :------------------------------ | :------ | :------------------------------------------------------------------------------------ | :----------- | +| Startup | Boolean | PowerToys is automatically enabled at startup. | ✅ Available | +| EnableWarningsElevatedApps | Boolean | Show a warning for functionality issues when running alongside elevated applications. | ✅ Available | +| Theme | String | What theme to use for the Settings application: "system", "dark", "light". | ✅ Available | +| ShowNewUpdatesToastNotification | Boolean | Show a toast notification when a new PowerToys update is available. | ✅ Available | +| AutoDownloadUpdates | Boolean | If new updates of PowerToys should be automatically downloaded in the background. | ✅ Available | +| ShowWhatsNewAfterUpdates | Boolean | After updating PowerToys, open the "What's new" screen. | ✅ Available | +| EnableExperimentation | Boolean | Opt-in into experimental features. | ✅ Available | + +## Migrating to Microsoft DSC + +If you're considering moving to the newer Microsoft DSC implementation +(available since PowerToys v0.95.0), see [Configure with Microsoft DSC][06]. +The Microsoft DSC approach offers: + +- Standalone `PowerToys.DSC.exe` tool without PowerShell dependencies +- Individual resource types for each utility (better modularity) +- Full JSON schema generation and validation +- DSC manifest generation capabilities +- Cross-platform readiness + +## See also + +- [Configure PowerToys with DSC overview][07] +- [Configure with Microsoft DSC][06] +- [PowerToys installation guide][03] +- [WinGet configuration documentation][08] +- [PowerShell DSC documentation][01] +- [PowerToys DSC examples][04] + + +[01]: https://learn.microsoft.com/powershell/dsc/overview +[02]: https://github.com/microsoft/winget-cli/releases +[03]: ../install.md +[04]: https://github.com/microsoft/PowerToys/tree/main/src/dsc/Microsoft.PowerToys.Configure/examples +[06]: microsoft-dsc.md +[07]: index.md +[08]: https://learn.microsoft.com/windows/package-manager/configuration/ +[09]: https://github.com/microsoft/PowerToys/blob/main/src/dsc/Microsoft.PowerToys.Configure/examples/configureLauncherPlugins.winget From e2d6e3e017f091113698a5bd00a4362e547f3ab2 Mon Sep 17 00:00:00 2001 From: "G.Reijn" Date: Tue, 21 Oct 2025 01:25:23 +0200 Subject: [PATCH 2/7] Fix links --- hub/powertoys/dsc-configure/microsoft-dsc.md | 6 +++--- hub/powertoys/dsc-configure/overview.md | 4 ++-- hub/powertoys/dsc-configure/psdsc.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hub/powertoys/dsc-configure/microsoft-dsc.md b/hub/powertoys/dsc-configure/microsoft-dsc.md index 87094e3f94..89b8ea73a0 100644 --- a/hub/powertoys/dsc-configure/microsoft-dsc.md +++ b/hub/powertoys/dsc-configure/microsoft-dsc.md @@ -411,11 +411,11 @@ If you're migrating from the PowerShell DSC module - [WinGet configuration documentation][06] -[01]: ../../../dsc/overview.md +[01]: https://github.com/microsoft/PowerToys/tree/main/doc/dsc/overview.md [02]: overview.md [03]: psdsc.md [04]: ../install.md -[05]: https://learn.microsoft.com/powershell/dsc/overview -[06]: https://learn.microsoft.com/windows/package-manager/configuration/ +[05]: /powershell/dsc/overview +[06]: /windows/package-manager/configuration/ [07]: https://github.com/microsoft/winget-cli/releases [08]: https://github.com/PowerShell/DSC/releases diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md index fe3f35b5c3..18152d85fc 100644 --- a/hub/powertoys/dsc-configure/overview.md +++ b/hub/powertoys/dsc-configure/overview.md @@ -124,5 +124,5 @@ Choose your DSC approach and get started: [01]: psdsc.md [02]: microsoft-dsc.md [03]: ../install.md -[04]: https://learn.microsoft.com/windows/package-manager/configuration/ -[05]: https://learn.microsoft.com/powershell/dsc/overview +[04]: /windows/package-manager/configuration/ +[05]: /powershell/dsc/overview diff --git a/hub/powertoys/dsc-configure/psdsc.md b/hub/powertoys/dsc-configure/psdsc.md index 6815b0535d..7e1ed41157 100644 --- a/hub/powertoys/dsc-configure/psdsc.md +++ b/hub/powertoys/dsc-configure/psdsc.md @@ -636,11 +636,11 @@ The Microsoft DSC approach offers: - [PowerToys DSC examples][04] -[01]: https://learn.microsoft.com/powershell/dsc/overview +[01]: /powershell/dsc/overview [02]: https://github.com/microsoft/winget-cli/releases [03]: ../install.md [04]: https://github.com/microsoft/PowerToys/tree/main/src/dsc/Microsoft.PowerToys.Configure/examples [06]: microsoft-dsc.md -[07]: index.md -[08]: https://learn.microsoft.com/windows/package-manager/configuration/ +[07]: overview.md +[08]: /windows/package-manager/configuration/ [09]: https://github.com/microsoft/PowerToys/blob/main/src/dsc/Microsoft.PowerToys.Configure/examples/configureLauncherPlugins.winget From 18ec947f8364d0617636869a337a9e8f516e45a5 Mon Sep 17 00:00:00 2001 From: "G.Reijn" Date: Tue, 21 Oct 2025 01:34:32 +0200 Subject: [PATCH 3/7] Remove file and update toc --- hub/dev-environment/toc.yml | 8 +- hub/powertoys/dsc-configure.md | 494 --------------------------------- hub/powertoys/install.md | 2 +- 3 files changed, 8 insertions(+), 496 deletions(-) delete mode 100644 hub/powertoys/dsc-configure.md diff --git a/hub/dev-environment/toc.yml b/hub/dev-environment/toc.yml index 41b44bfd2f..3d942f30c4 100644 --- a/hub/dev-environment/toc.yml +++ b/hub/dev-environment/toc.yml @@ -31,7 +31,13 @@ items: - name: Run in admin mode href: ../powertoys/administrator.md - name: DSC configuration - href: ../powertoys/dsc-configure.md + items: + - name: Overview + href: ../powertoys/dsc-configure/overview.md + - name: Configure with PowerShell DSC + href: ../powertoys/dsc-configure/psdsc.md + - name: Configure with Microsoft DSC + href: ../powertoys/dsc-configure/microsoft-dsc.md - name: Group Policy href: ../powertoys/grouppolicy.md - name: Report a bug diff --git a/hub/powertoys/dsc-configure.md b/hub/powertoys/dsc-configure.md deleted file mode 100644 index f117024eab..0000000000 --- a/hub/powertoys/dsc-configure.md +++ /dev/null @@ -1,494 +0,0 @@ ---- -title: PowerToys DSC Configure module guide -description: Learn how to configure PowerToys utilities using the Desired State Configuration (DSC) Configure module with WinGet configuration files. Complete reference for all available settings and properties. -ms.date: 08/20/2025 -ms.topic: concept-article -no-loc: [PowerToys, Windows, DSC, Win] -# customer intent: As a Windows power user, I want to learn about the DSC Configure module in PowerToys. ---- - -# Desired State Configuration in PowerToys - -Since version 0.80, the PowerToys installer has been released on GitHub with `Microsoft.PowerToys.Configure` [DSC resource](/powershell/dsc/overview) that allows you to configure PowerToys using a [Winget configuration file](/windows/package-manager/configuration/create). - -## Installation - -### Prerequisites - -- PSDesiredStateConfiguration 2.0.7 or later: Refer to the [PowerShell DSC documentation](/powershell/dsc/overview) for installation instructions. -- PowerShell 7.2 or higher. -- WinGet [version v1.6.2631 or later](https://github.com/microsoft/winget-cli/releases). - -### Download - -Microsoft.PowerToys.Configure is [installed with PowerToys](install.md). Depending on the installer type, it's installed as follows: - -- For the per-user install scope, the module is located in `%USERPROFILE%\Documents\PowerShell\Modules\Microsoft.PowerToys.Configure`. -- For the machine-wide install scope, it's found in `%ProgramFiles%\WindowsPowerShell\Modules\Microsoft.PowerToys.Configure`. - -## Usage - -You can invoke the resource directly using the following Powershell syntax: - -```ps -Invoke-DscResource -Name PowerToysConfigure -Method Set -ModuleName Microsoft.PowerToys.Configure -Property @{ Awake = @{ Enabled = $false; Mode = "TIMED"; IntervalMinutes = "10" } } -``` - -However, creating a _configuration.dsc.yaml_ file that contains the required settings in a simpler format is more convenient. Here's an example: - -```yaml -properties: - resources: - - resource: Microsoft.WinGet.DSC/WinGetPackage - id: installPowerToys - directives: - description: Install PowerToys - allowPrerelease: true - settings: - id: Microsoft.PowerToys - source: winget - - - resource: Microsoft.PowerToys.Configure/PowerToysConfigure - dependsOn: - - installPowerToys - directives: - description: Configure PowerToys - settings: - ShortcutGuide: - Enabled: false - OverlayOpacity: 50 - FancyZones: - Enabled: true - FancyzonesEditorHotkey: "Shift+Ctrl+Alt+F" - FileLocksmith: - Enabled: false - configurationVersion: 0.2.0 -``` - -Use the following command to apply the configuration from the file: - -```ps -winget configure .\configuration.dsc.yaml -``` - -This command installs the latest version of PowerToys and uses the PowerToysConfigure resource to apply settings for multiple PowerToys modules. More examples can be found [in the PowerToys repo](https://github.com/microsoft/PowerToys/tree/main/src/dsc/Microsoft.PowerToys.Configure/examples). - -## Available configuration settings by module - -### AlwaysOnTop - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| Hotkey | KeyboardKeys | Customize the shortcut to pin or unpin an app window. | ✅ Available | -| FrameEnabled | Boolean | Show a border around the pinned window. | ✅ Available | -| FrameThickness | Int | Border thickness in pixels. | ✅ Available | -| FrameColor | String | Specify a color in a `#FFFFFFFF` format. | ✅ Available | -| FrameOpacity | Int | Border opacity in percentage. | ✅ Available | -| FrameAccentColor | Boolean | Use a custom FrameColor value. | ✅ Available | -| SoundEnabled | Boolean | Play a sound when pinning a window. | ✅ Available | -| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | -| ExcludedApps | String | '\r'-separated list of executable names to exclude from pinning on top. | ✅ Available | -| RoundCornersEnabled | Boolean | Enable round corners. | ✅ Available | - -### Awake - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| KeepDisplayOn | Boolean | This setting is only available when keeping the PC awake. | ✅ Available | -| Mode | AwakeMode | Possible values: PASSIVE, INDEFINITE, TIMED, EXPIRABLE. | ✅ Available | -| IntervalHours | UInt32 | When using TIMED mode, specifies the number of hours. | ✅ Available | -| IntervalMinutes | UInt32 | When using TIMED mode, specifies the number of minutes. | ✅ Available | -| ExpirationDateTime | DateTimeOffset | When using EXPIRABLE mode, specifies the date and time in a format parsable with `DateTimeOffset.TryParse`. | ✅ Available | - -### ColorPicker - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | -| CopiedColorRepresentation | String | The default color representation to be used. Example :"HEX". | ✅ Available | -| ActivationAction | ColorPickerActivationAction | Possible values: OpenEditor, OpenColorPickerAndThenEditor, OpenOnlyColorPicker. | ✅ Available | -| VisibleColorFormats | — | — | ❌ Not available | -| ShowColorName | Boolean | This will show the name of the color when picking a color. | ✅ Available | - -> [!NOTE] -> Configuring custom color formats through DSC is not yet supported. - -### CropAndLock - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ReparentHotkey | KeyboardKeys | Shortcut to crop an application's window into a cropped window. | ✅ Available | -| ThumbnailHotkey | KeyboardKeys | Shortcut to crop and create a thumbnail of another window. | ✅ Available | - -### EnvironmentVariables - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| LaunchAdministrator | Boolean | Needs to be launched as administrator in order to make changes to the system environment variables. | ✅ Available | - -### FancyZones - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| FancyzonesShiftDrag | Boolean | Hold Shift key to activate zones while dragging a window. | ✅ Available | -| FancyzonesMouseSwitch | Boolean | Use a non-primary mouse button to toggle zone activation. | ✅ Available | -| FancyzonesMouseMiddleClickSpanningMultipleZones | Boolean | Use middle-click mouse button to toggle multiple zones spanning. | ✅ Available | -| FancyzonesOverrideSnapHotkeys | Boolean | This overrides the Windows Snap shortcut (Win + arrow) to move windows between zones. | ✅ Available | -| FancyzonesMoveWindowsAcrossMonitors | Boolean | Move windows between zones across all monitors. | ✅ Available | -| FancyzonesMoveWindowsBasedOnPosition | Boolean | Move windows based on relative position or zone index. | ✅ Available | -| FancyzonesOverlappingZonesAlgorithm | Int | When multiple zones overlap algorithm index. | ✅ Available | -| FancyzonesDisplayOrWorkAreaChangeMoveWindows | Boolean | Keep windows in their zones when the screen resolution or work area changes. | ✅ Available | -| FancyzonesZoneSetChangeMoveWindows | Boolean | During zone layout changes, windows assigned to a zone will match new size/positions. | ✅ Available | -| FancyzonesAppLastZoneMoveWindows | Boolean | Move newly created windows to their last known zone. | ✅ Available | -| FancyzonesOpenWindowOnActiveMonitor | Boolean | Move newly created windows to the current active monitor (Experimental). | ✅ Available | -| FancyzonesRestoreSize | Boolean | Restore the original size of windows when unsnapping. | ✅ Available | -| FancyzonesQuickLayoutSwitch | Boolean | Enable quick layout switch. | ✅ Available | -| FancyzonesFlashZonesOnQuickSwitch | Boolean | Flash zones when switching layout. | ✅ Available | -| UseCursorposEditorStartupscreen | Boolean | Open editor on the display where the mouse point is. | ✅ Available | -| FancyzonesShowOnAllMonitors | Boolean | Show zones on all monitors while dragging a window. | ✅ Available | -| FancyzonesSpanZonesAcrossMonitors | Boolean | Allow zones to span across monitors. | ✅ Available | -| FancyzonesMakeDraggedWindowTransparent | Boolean | Make dragged window transparent. | ✅ Available | -| FancyzonesAllowChildWindowSnap | Boolean | Allow child windows snapping. | ✅ Available | -| FancyzonesDisableRoundCornersOnSnap | Boolean | Disable round corners when window is snapped. | ✅ Available | -| FancyzonesZoneHighlightColor | String | If not using FancyzonesSystemTheme, highlight color to use in `#FFFFFFFF` format. | ✅ Available | -| FancyzonesHighlightOpacity | Int | Zone opacity in percentage. | ✅ Available | -| FancyzonesEditorHotkey | KeyboardKeys | Customize the shortcut to activate this module. | ✅ Available | -| FancyzonesWindowSwitching | Boolean | Switch between windows in the current zone. | ✅ Available | -| FancyzonesNextTabHotkey | KeyboardKeys | Next window shortcut. | ✅ Available | -| FancyzonesPrevTabHotkey | KeyboardKeys | Previous window shortcut. | ✅ Available | -| FancyzonesExcludedApps | String | '\r'-separated list of executable names to exclude from snapping. | ✅ Available | -| FancyzonesBorderColor | String | If not using FancyzonesSystemTheme, border color to use in `#FFFFFFFF` format. | ✅ Available | -| FancyzonesInActiveColor | String | If not using FancyzonesSystemTheme, inactive color to use in `#FFFFFFFF` format. | ✅ Available | -| FancyzonesNumberColor | String | If not using FancyzonesSystemTheme, number color to use in `#FFFFFFFF` format. | ✅ Available | -| FancyzonesSystemTheme | Boolean | Use system theme for zone appearance. | ✅ Available | -| FancyzonesShowZoneNumber | Boolean | Show zone number. | ✅ Available | - -> [!NOTE] -> Configuring layouts through DSC is not yet supported. - -### FileLocksmith - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ExtendedContextMenuOnly | Boolean | Show File Locksmith in extended context menu only or in default context menu as well. | ✅ Available | - -### FindMyMouse - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationMethod | Int | Activation method index. | ✅ Available | -| ActivationShortcut | HotkeySettings | Custom activation shortcut when using Custom for ActivationMethod. | ✅ Available | -| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | -| BackgroundColor | String | Background color in `#FFFFFFFF` format. | ✅ Available | -| SpotlightColor | String | Spotlight color in `#FFFFFFFF` format. | ✅ Available | -| OverlayOpacity | Int | Overlay opacity in percentage. | ✅ Available | -| SpotlightRadius | Int | Spotlight radius in px. | ✅ Available | -| AnimationDurationMs | Int | Animation duration in milliseconds. | ✅ Available | -| SpotlightInitialZoom | Int | Spotlight zoom factor at animation start. | ✅ Available | -| ExcludedApps | String | '\r'-separated list of executable names to prevent module activation. | ✅ Available | -| ShakingMinimumDistance | Int | When using shake mouse ActivationMethod, the minimum distance for mouse shaking activation, for adjusting sensitivity. | ✅ Available | -| ShakingIntervalMs | Int | When using shake mouse ActivationMethod, the span of time during which we track mouse movement to detect shaking, for adjusting sensitivity. | ✅ Available | -| ShakingFactor | Int | When using shake mouse ActivationMethod, Shake factor in percentage. | ✅ Available | - -### Hosts - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| LaunchAdministrator | Boolean | Needs to be opened as administrator in order to make changes to the system environment variables. | ✅ Available | -| ShowStartupWarning | Boolean | Show a warning at startup. | ✅ Available | -| LoopbackDuplicates | Boolean | Consider loopback addresses as duplicates. | ✅ Available | -| AdditionalLinesPosition | HostsAdditionalLinesPosition | Possible values: Top, Bottom. | ✅ Available | -| Encoding | HostsEncoding | Possible values: Utf8, Utf8Bom. | ✅ Available | - -### ImageResizer - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ImageresizerSelectedSizeIndex | Int | Default size preset index. | ✅ Available | -| ImageresizerShrinkOnly | Boolean | Make pictures smaller but not larger. | ✅ Available | -| ImageresizerReplace | Boolean | Overwrite files. | ✅ Available | -| ImageresizerIgnoreOrientation | Boolean | Ignore the orientation of pictures. | ✅ Available | -| ImageresizerJpegQualityLevel | Int | JPEG quality level in percentage. | ✅ Available | -| ImageresizerPngInterlaceOption | Int | PNG interlacing option index. | ✅ Available | -| ImageresizerTiffCompressOption | Int | Tiff compression index. | ✅ Available | -| ImageresizerFileName | String | This format is used as the filename for resized images. | ✅ Available | -| ImageresizerSizes | — | — | ❌ Not available | -| ImageresizerKeepDateModified | Boolean | Remove metadata that doesn't affect rendering. | ✅ Available | -| ImageresizerFallbackEncoder | String | Fallback encoder to use. | ✅ Available | -| ImageresizerCustomSize | — | — | ❌ Not available | - -> [!NOTE] -> Configuring custom sizes through DSC is not yet supported. - -### KeyboardManager - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActiveConfiguration | — | — | ❌ Not available | -| KeyboardConfigurations | — | — | ❌ Not available | - -> [!NOTE] -> Configuring remappings through DSC is not yet supported. - -### MeasureTool - -Measure Tool is the internal name for Screen Ruler. - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to bring up the command bar. | ✅ Available | -| ContinuousCapture | Boolean | Capture screen continuously during measuring. | ✅ Available | -| DrawFeetOnCross | Boolean | Adds feet to the end of cross lines. | ✅ Available | -| PerColorChannelEdgeDetection | Boolean | Enable a different edge detection algorithm. | ✅ Available | -| PixelTolerance | Int | Pixel Tolerance for edge detection. | ✅ Available | -| MeasureCrossColor | String | Line color in `#FFFFFFFF` format. | ✅ Available | -| DefaultMeasureStyle | Int | Default measure style index. | ✅ Available | - -### MouseHighlighter - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to turn on or off this mode. | ✅ Available | -| LeftButtonClickColor | String | Primary button highlight color in `#FFFFFFFF` format. | ✅ Available | -| RightButtonClickColor | String | Secondary button highlight color in `#FFFFFFFF` format. | ✅ Available | -| AlwaysColor | String | Always highlight color in `#FFFFFFFF` format. | ✅ Available | -| HighlightRadius | Int | Highlight radius in pixels. | ✅ Available | -| HighlightFadeDelayMs | Int | Fade delay in milliseconds. | ✅ Available | -| HighlightFadeDurationMs | Int | Fade duration in milliseconds. | ✅ Available | -| AutoActivate | Boolean | Automatically activate on utility startup. | ✅ Available | - -### MouseJump - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to turn on or off this mode. | ✅ Available | -| ThumbnailSize | MouseJumpThumbnailSize | Thumbnail size. | ✅ Available | - -### MousePointerCrosshairs - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to show/hide the crosshairs. | ✅ Available | -| CrosshairsColor | String | Crosshairs color in `#FFFFFFFF`. | ✅ Available | -| CrosshairsOpacity | Int | Crosshairs opacity in percentage. | ✅ Available | -| CrosshairsRadius | Int | Crosshairs center radius in pixels. | ✅ Available | -| CrosshairsThickness | Int | Crosshairs thickness in pixels. | ✅ Available | -| CrosshairsBorderColor | String | Crosshairs border color in `#FFFFFFFF` format. | ✅ Available | -| CrosshairsBorderSize | Int | Crosshairs border size in pixels. | ✅ Available | -| CrosshairsAutoHide | Boolean | Automatically hide crosshairs when the mouse pointer is hidden. | ✅ Available | -| CrosshairsIsFixedLengthEnabled | Boolean | Fix crosshairs length. | ✅ Available | -| CrosshairsFixedLength | Int | Crosshairs fixed length in pixels. | ✅ Available | -| AutoActivate | Boolean | Automatically activate on utility startup. | ✅ Available | - -### MouseWithoutBorders - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ShowOriginalUI | Boolean | Show the original Mouse Without Borders UI. | ✅ Available | -| WrapMouse | Boolean | Move control back to the first machine when mouse moves past the last one. | ✅ Available | -| ShareClipboard | Boolean | If share clipboard stops working, Ctrl+Alt+Del then Esc may solve the problem. | ✅ Available | -| TransferFile | Boolean | If a file (<100MB) is copied, it will be transferred to the remote machine clipboard. | ✅ Available | -| HideMouseAtScreenEdge | Boolean | Hide mouse at the screen edge. | ✅ Available | -| DrawMouseCursor | Boolean | Mouse cursor may not be visible in Windows 10 and later versions of Windows when there is no physical mouse attached. | ✅ Available | -| ValidateRemoteMachineIP | Boolean | Reverse DNS lookup to validate machine IP Address. | ✅ Available | -| SameSubnetOnly | Boolean | Only connect to machines in the same intranet NNN.NNN.*.* (only works when both machines have IPv4 enabled). | ✅ Available | -| BlockScreenSaverOnOtherMachines | Boolean | Block screen saver on other machines. | ✅ Available | -| MoveMouseRelatively | Boolean | Use this option when remote machine's monitor settings are different, or remote machine has multiple monitors. | ✅ Available | -| BlockMouseAtScreenCorners | Boolean | Block mouse at screen corners to avoid accident machine-switch at screen corners. | ✅ Available | -| ShowClipboardAndNetworkStatusMessages | Boolean | Show clipboard and network status messages. | ✅ Available | -| EasyMouse | Int | Easy Mouse mode index. | ✅ Available | -| HotKeySwitchMachine | Int | Shortcut to switch between machines index. | ✅ Available | -| ToggleEasyMouseShortcut | HotkeySettings | Shortcut to toggle Easy Mouse. | ✅ Available | -| LockMachineShortcut | HotkeySettings | Shortcut to lock all machines. | ✅ Available | -| ReconnectShortcut | HotkeySettings | Shortcut to try reconnecting. | ✅ Available | -| Switch2AllPCShortcut | HotkeySettings | Shortcut to switch to multiple machine mode. | ✅ Available | -| Name2IP | String | IP address mapping. | ✅ Available | - -### PastePlain - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | - -### Peek - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | -| AlwaysRunNotElevated | Boolean | Always run not elevated, even when PowerToys is elevated. | ✅ Available | -| CloseAfterLosingFocus | Boolean | Automatically close the Peek window after it loses focus. | ✅ Available | - -### PowerAccent - -PowerAccent is the internal name for Quick Accent. - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationKey | PowerAccentActivationKey | Possible values: LeftRightArrow, Space, Both. | ✅ Available | -| DoNotActivateOnGameMode | Boolean | Disable activation shortcut when Game Mode is on. | ✅ Available | -| ToolbarPosition | String | Toolbar position index. | ✅ Available | -| InputTime | Int | Input time delay in milliseconds. | ✅ Available | -| SelectedLang | String | A character set to use. | ✅ Available | -| ExcludedApps | String | '\r'-separated list of executable names to prevent module activation if they're in a foreground. | ✅ Available | -| ShowUnicodeDescription | Boolean | Show the Unicode code and name of the currently selected character. | ✅ Available | -| SortByUsageFrequency | Boolean | Sort characters by usage frequency. | ✅ Available | -| StartSelectionFromTheLeft | Boolean | Start selection from the left. | ✅ Available | - -### PowerLauncher - -PowerLaucher is the internal name for PowerToys Run. - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| OpenPowerLauncher | HotkeySettings | Customize the shortcut to activate the module. | ✅ Available | -| IgnoreHotkeysInFullscreen | Boolean | Ignore shortcuts in fullscreen mode. | ✅ Available | -| ClearInputOnLaunch | Boolean | Clear the previous query on open. | ✅ Available | -| TabSelectsContextButtons | Boolean | Tab through context buttons. | ✅ Available | -| Theme | Theme | Possible values: System, Light, Dark, HighContrastOne, HighContrastTwo, HighContrastBlack, HighContrastWhite. | ✅ Available | -| TitleFontSize | Int32 | Text size in points. | ✅ Available | -| Position | StartupPosition | Possible values: Cursor, PrimaryMonitor, Focus. | ✅ Available | -| UseCentralizedKeyboardHook | Boolean | Use centralized keyboard hook. | ✅ Available | -| SearchQueryResultsWithDelay | Boolean | Input Smoothing. | ✅ Available | -| SearchInputDelay | Int32 | Immediate plugins delay in milliseconds. | ✅ Available | -| SearchInputDelayFast | Int32 | Background execution plugins delay in milliseconds. | ✅ Available | -| SearchClickedItemWeight | Int32 | Selected item weight. | ✅ Available | -| SearchQueryTuningEnabled | Boolean | Results order tuning. | ✅ Available | -| SearchWaitForSlowResults | Boolean | Wait for slower plugin results before selecting top item in results. | ✅ Available | -| MaximumNumberOfResults | Int | Number of results shown before having to scroll. | ✅ Available | -| UsePinyin | Boolean | Use Pinyin. | ✅ Available | -| GenerateThumbnailsFromFiles | Boolean | Thumbnail generation for files is turned on. | ✅ Available | -| Plugins | explained in the next subsection | Thumbnail generation for files is turned on. | ✅ Available | - -#### PowerToys Run plugin configuration - -PowerToys Run plugins can be configured in the Plugins property. [A sample](https://github.com/microsoft/PowerToys/blob/main/src/dsc/Microsoft.PowerToys.Configure/examples/configureLauncherPlugins.winget) can be found in the PowerToys repository. - -These are the available properties to configure each plugin: - -| Name | Type | Description | -| :--- | :--- | :--- | -| Name | String | Name of the plugin we want to configure | -| Disabled | Boolean | The plugin should be disabled | -| IsGlobal | Boolean | The results for this plugin are shown in the global results | -| ActionKeyword | String | Configure the action keyword of the plugin | -| WeightBoost | Int | The weight modifier to help in ordering the results for this plugin | - -> [!NOTE] -> Configuring additional properties of plugins through DSC is not yet supported. - -### PowerOcr - -PowerOcr is the internal name for Text Extractor. - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| ActivationShortcut | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | -| PreferredLanguage | String | Should match the full name of one of the languages installed in the system. Example: "English (United States)". | ✅ Available | - -### PowerPreview - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| EnableSvgPreview | Boolean | Scalable Vector Graphics Preview Handler Enabled state. | ✅ Available | -| SvgBackgroundColorMode | Int | Color mode index. | ✅ Available | -| SvgBackgroundSolidColor | String | When using Solid color SvgBackgroundColorMode, specifies the color in `#FFFFFFFF` format. | ✅ Available | -| SvgBackgroundCheckeredShade | Int | When using Checkered pattern SvgBackgroundColorMode, specifies the shade index. | ✅ Available | -| EnableSvgThumbnail | Boolean | Scalable Vector Graphics Thumbnail Generator Enabled state. | ✅ Available | -| EnableMdPreview | Boolean | Markdown Preview Handler Enabled state. | ✅ Available | -| EnableMonacoPreview | Boolean | Source code files Preview Handler Enabled state. | ✅ Available | -| EnableMonacoPreviewWordWrap | Boolean | Wrap text. | ✅ Available | -| MonacoPreviewTryFormat | Boolean | Try to format the source for preview. | ✅ Available | -| MonacoPreviewMaxFileSize | Int | Maximum file size to preview in KB. | ✅ Available | -| EnablePdfPreview | Boolean | Portable Document Format Preview Handler Enabled state. | ✅ Available | -| EnablePdfThumbnail | Boolean | Portable Document Format Thumbnail Generator Enabled state. | ✅ Available | -| EnableGcodePreview | Boolean | Geometric Code Preview Handler Enabled state. | ✅ Available | -| EnableGcodeThumbnail | Boolean | Geometric Code Thumbnail Generator Enabled state. | ✅ Available | -| EnableStlThumbnail | Boolean | Stereolithography Thumbnail Generator Enabled state. | ✅ Available | -| StlThumbnailColor | String | Thumbnail color in `#FFFFFFFF` format . | ✅ Available | -| EnableQoiPreview | Boolean | Quite OK Image Preview Handler Enabled state. | ✅ Available | -| EnableQoiThumbnail | Boolean | Quite OK Image Thumbnail Generator Enabled state. | ✅ Available | - -### PowerRename - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| MRUEnabled | Boolean | Enable auto-complete for the search & replace fields. | ✅ Available | -| MaxMRUSize | Int | Maximum number of recently used items to remember. | ✅ Available | -| ExtendedContextMenuOnly | Boolean | Show PowerRename in extended context menu only or in default context menu as well. | ✅ Available | -| UseBoostLib | Boolean | Use Boost Library. | ✅ Available | - -### RegistryPreview - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| DefaultRegApp | Boolean | Make Registry Preview default app for opening .reg files. | ✅ Available | - -### ShortcutGuide - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| OpenShortcutGuide | HotkeySettings | Customize the shortcut to activate this module. | ✅ Available | -| OverlayOpacity | Int | Background opacity in percentage. | ✅ Available | -| UseLegacyPressWinKeyBehavior | Boolean | If ShortcutGuide should be activated by pressing the Windows key. | ✅ Available | -| PressTimeForGlobalWindowsShortcuts | Int | Press duration before showing global Windows shortcuts in milliseconds. | ✅ Available | -| PressTimeForTaskbarIconShortcuts | Int | Press duration before showing taskbar icon shortcuts in milliseconds. | ✅ Available | -| Theme | String | Theme index. | ✅ Available | -| DisabledApps | String | Turns off Shortcut Guide when these applications have focus. | ✅ Available | - -### VideoConference - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Enabled | Boolean | The enabled state for this utility. | ✅ Available | -| MuteCameraAndMicrophoneHotkey | KeyboardKeys | Shortcut for muting the camera and microphone. | ✅ Available | -| MuteMicrophoneHotkey | KeyboardKeys | Shortcut for muting the microphone. | ✅ Available | -| PushToTalkMicrophoneHotkey | KeyboardKeys | Shortcut for push to talk. | ✅ Available | -| PushToReverseEnabled | Boolean | If enabled, allows both push to talk and push to mute, depending on microphone state. | ✅ Available | -| MuteCameraHotkey | KeyboardKeys | Shortcut for muting the camera. | ✅ Available | -| SelectedCamera | String | Device name. | ✅ Available | -| SelectedMicrophone | String | Device name or [All]. | ✅ Available | -| ToolbarPosition | String | Toolbar position option: "Top center", "Bottom center", "Top right corner", "Top left corner", "Bottom right corner", "Bottom left corner". | ✅ Available | -| ToolbarMonitor | String | Toolbar monitor option: "Main monitor", "All monitors". | ✅ Available | -| CameraOverlayImagePath | String | Path to the image used for the camera overlay. | ✅ Available | -| ToolbarHide | String | When to hide the toolbar: "Never", "When both camera and microphone are unmuted", "When both camera and microphone are muted", "After timeout". | ✅ Available | -| StartupAction | String | Startup action: "Nothing", "Unmute", "Mute". | ✅ Available | - -### GeneralSettings - -| Name | Type | Description | Available | -| :--- | :--- | :--- | :--- | -| Startup | Boolean | PowerToys is automatically enabled at startup. | ✅ Available | -| EnableWarningsElevatedApps | Boolean | Show a warning for functionality issues when running alongside elevated applications. | ✅ Available | -| Theme | String | What theme to use for the Settings application: "system", "dark", "light". | ✅ Available | -| ShowNewUpdatesToastNotification | Boolean | Show a toast notification when a new PowerToys update is available. | ✅ Available | -| AutoDownloadUpdates | Boolean | If new updates of PowerToys should be automatically downloaded in the background. | ✅ Available | -| ShowWhatsNewAfterUpdates | Boolean | After updating PowerToys, open the "What's new" screen. | ✅ Available | -| EnableExperimentation | Boolean | Opt-in into experimental features. | ✅ Available | - -## Contributing - -Refer to the [relevant devdocs](https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/core/settings/dsc-configure.md) section in the developer documentation to start working on the DSC module. diff --git a/hub/powertoys/install.md b/hub/powertoys/install.md index 3f3c8c66c9..8f742a44d8 100644 --- a/hub/powertoys/install.md +++ b/hub/powertoys/install.md @@ -56,7 +56,7 @@ To install PowerToys using the [Windows Package Manager](../package-manager/wing winget install --id Microsoft.PowerToys --source winget ``` -PowerToys supports configuring through `winget configure` using [Desired State Configuration](dsc-configure.md). +PowerToys supports configuring through `winget configure` using [Desired State Configuration](dsc-configure/overview.md). ## Command-line installer arguments From 12933b5e7f913824942b744534b73285f219abff Mon Sep 17 00:00:00 2001 From: "G.Reijn" Date: Fri, 24 Oct 2025 03:40:39 +0200 Subject: [PATCH 4/7] Small typo --- hub/powertoys/dsc-configure/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md index 18152d85fc..de03fd8bd2 100644 --- a/hub/powertoys/dsc-configure/overview.md +++ b/hub/powertoys/dsc-configure/overview.md @@ -50,7 +50,7 @@ PowerToys offers two distinct DSC implementations: - You're adopting Microsoft DSC standards and tooling. - You want direct command-line configuration with `PowerToys.DSC.exe`. - You need JSON schema validation and manifest generation. -- You're building automation with the latest Microsft DSC ecosystem. +- You're building automation with the latest Microsoft DSC ecosystem. **Available since:** PowerToys v0.95.0 From 35f11aaf116250a2e60b3b5f66a979979de9da66 Mon Sep 17 00:00:00 2001 From: Alvin Ashcraft <73072+alvinashcraft@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:35:40 -0400 Subject: [PATCH 5/7] Apply suggestions from code review Remove line breaks --- hub/powertoys/dsc-configure/overview.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md index de03fd8bd2..5fdd435604 100644 --- a/hub/powertoys/dsc-configure/overview.md +++ b/hub/powertoys/dsc-configure/overview.md @@ -69,11 +69,7 @@ PowerToys offers two distinct DSC implementations: | **Manifest generation** | No | Yes | > [!IMPORTANT] -> While Microsoft DSC is cross-platform ready and can run on Windows, Linux, -> and macOS, PowerToys itself is a Windows-only application. The Microsoft DSC -> implementation provides a modern, cross-platform architecture that aligns -> with the broader DSC v3 ecosystem, but PowerToys configuration can only be -> applied on Windows systems where PowerToys is installed. +> While Microsoft DSC is cross-platform ready and can run on Windows, Linux, and macOS, PowerToys itself is a Windows-only application. The Microsoft DSC implementation provides a modern, cross-platform architecture that aligns with the broader DSC v3 ecosystem, but PowerToys configuration can only be applied on Windows systems where PowerToys is installed. ## Configuration scope @@ -109,8 +105,7 @@ Both approaches support configuring all PowerToys utilities: Choose your DSC approach and get started: -- **[Configure with PowerShell DSC][01]** - Learn about the PowerShell-based - DSC module and WinGet configuration integration +- **[Configure with PowerShell DSC][01]** - Learn about the PowerShell-based DSC module and WinGet configuration integration - **[Configure with Microsoft DSC][02]** - Explore the modern Microsoft DSC implementation with PowerToys.DSC.exe From 64a7f6d017110f8d5a75e8258d87408f4f74a30e Mon Sep 17 00:00:00 2001 From: Alvin Ashcraft <73072+alvinashcraft@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:23:05 -0400 Subject: [PATCH 6/7] Apply suggestions from code review --- hub/powertoys/dsc-configure/overview.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md index 5fdd435604..641e8ccd73 100644 --- a/hub/powertoys/dsc-configure/overview.md +++ b/hub/powertoys/dsc-configure/overview.md @@ -30,9 +30,7 @@ PowerToys offers two distinct DSC implementations: 2. **Microsoft DSC** - A modern, cross-platform implementation using DSC v3 > [!NOTE] -> These are two separate implementations with different capabilities, -> syntaxes, and use cases. Choose the approach that best fits your -> infrastructure and requirements. +> These are two separate implementations with different capabilities, syntaxes, and use cases. Choose the approach that best fits your infrastructure and requirements. ## Choosing the right approach From 13cba530ab84dc624bf4f2484d78e9f46d1243d0 Mon Sep 17 00:00:00 2001 From: Alvin Ashcraft <73072+alvinashcraft@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:24:11 -0400 Subject: [PATCH 7/7] Apply suggestions from code review --- hub/powertoys/dsc-configure/overview.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hub/powertoys/dsc-configure/overview.md b/hub/powertoys/dsc-configure/overview.md index 641e8ccd73..3aeacbe215 100644 --- a/hub/powertoys/dsc-configure/overview.md +++ b/hub/powertoys/dsc-configure/overview.md @@ -104,8 +104,7 @@ Both approaches support configuring all PowerToys utilities: Choose your DSC approach and get started: - **[Configure with PowerShell DSC][01]** - Learn about the PowerShell-based DSC module and WinGet configuration integration -- **[Configure with Microsoft DSC][02]** - Explore the modern Microsoft DSC - implementation with PowerToys.DSC.exe +- **[Configure with Microsoft DSC][02]** - Explore the modern Microsoft DSC implementation with PowerToys.DSC.exe ## See also