This repository allows you to build a portable, self-contained FancyZones from a PowerToys installation.
For anyone who wants FancyZones window management without the rest of the PowerToys suite running in the background.
For generating the portable deployment, DotNet and PowerToys are required.
Once the portable package has been generated, it can be used on any machine with no dependencies or requirements.
winget install Microsoft.PowerToys --version 0.99.1 # bundled binaries are copied from here (known-good version)
winget install Microsoft.DotNet.SDK.9 # builds the tray launcherWhen done, restart the terminal so changes to path are picked up.
git clone https://github.com/ByteSizedMarius/StandaloneFancyZones
.\StandaloneFancyZones\GenerateDeployment.ps1Produces .\deployment and StandaloneFancyZones.zip in the project directory. If the build errors, see Troubleshooting.
Optional: neither build dependency is needed at runtime, so both can be removed once ./deployment exists:
winget uninstall Microsoft.PowerToys; winget uninstall Microsoft.DotNet.SDK.9Run deployment\StandaloneFancyZones.exe. A tray icon appears.
- Right-click → Editor: open the layout editor.
- Right-click → Exit: stop FancyZones and the tray.
- Win+Shift+` (or Win+Shift+ö depending on kb language): the upstream edit-zones hotkey still works.
For login autostart: run deployment\Add-ToAutostart.ps1 once.
To be clear, the executable is portable – zone configuration and settings live on the machine at %LOCALAPPDATA%\Microsoft\PowerToys\FancyZones\ in the json files.
The zone editor is packaged as normal, but settings accessed via the PowerToys runner (shortcut, zone behavior, zone appearance, etc.) can only be set manually.
Configure with a normal PowerToys install, then copy the files or edit manually using a texteditor.
With the approach implemented here, the Microsoft-signed FancyZones binaries are reused; we just need to glue them together.
The PowerToys runner normally provides:
- Lifecycle supervision (start FZ, restart when settings change, etc.)
- Editor invocation (signaling FZ to open the layout editor on demand)
- Tray Icon
These are reimplemented in StandaloneFancyZones.exe, which is a self-compiled unsigned binary. The source code lives in this src.
- No Settings UI. Edit
settings.jsondirectly or copy your settings from an existing installation configured with the PowerToys settings UI (to be clear: settings != zones. Zones can be configured as normal via the packaged editor). - No code signing for StandaloneFancyZones.exe.
- No telemetry, GPO, or auto-update.
NuGet has no sources configured (common on a fresh SDK install). Add nuget.org and retry:
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org