microsoft / microsoft/PowerToys

FancyZones: allow deploying layouts (custom layouts, templates, hotkeys, default layouts) through Microsoft DSC

Open
#50,544 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Needs-Triage Product-FancyZones
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 with dsc config test.
  • Exporting the layouts of a reference machine with PowerToys.DSC.exe export and reusing them in a configuration document.
Supporting information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.