microsoft / microsoft/PowerToys
FancyZones: allow deploying layouts (custom layouts, templates, hotkeys, default layouts) through Microsoft DSC
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
Description of the new feature / enhancement
Since #49427, PowerToys.DSC.exe can deploy Keyboard Manager remappings through the Microsoft.PowerToys/KeyboardManagerProfile resource. FancyZones has the same gap: the Microsoft.PowerToys/FancyZonesSettings resource only manages the settings in settings.json (activation, appearance, behavior), while the layouts themselves are stored in separate files under %LOCALAPPDATA%\Microsoft\PowerToys\FancyZones\ and can only be created in the FancyZones editor:
custom-layouts.json(canvas and grid layouts)layout-templates.json(zone count and spacing of the built-in templates)layout-hotkeys.json(quick layout switch keys)default-layouts.json(layouts applied to new horizontal and vertical monitors)
Scenario when this would be used?
- Setting up a new developer machine with
winget configure, including the window layouts and the quick layout hotkeys, without opening the FancyZones editor. - Keeping a fleet of machines on a standard set of layouts with
dsc config set, and detecting drift withdsc config test. - Exporting the layouts of a reference machine with
PowerToys.DSC.exe exportand reusing them in a configuration document.
Supporting information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing Keyboard Manager DSC resource from #49427 and the Microsoft.PowerToys/FancyZonesSettings resource, then trace how FancyZones reads custom-layouts.json, layout-templates.json, layout-hotkeys.json, and default-layouts.json. Done means DSC can deploy, export, and test drift for these layout files without opening the FancyZones editor.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100