Skip to content
gvastethecreatorPublic

About

Native WinUI wallpaper manager for independent multi-monitor layouts and reusable local presets.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

32 Commits

Folders and files

Repository files navigation

Waller — one wallpaper workspace for every monitor

CI status Project site .NET 10 GitHub stars MIT license

Waller is a native Windows wallpaper manager for multi-monitor setups. The product is the WinUI 3 application under native/, built with C# and .NET 10.

It keeps one editable Active Session, lets every Monitor use its own Wallpaper Source and placement, saves reusable local Presets, and applies rendered wallpapers through Windows IDesktopWallpaper.

Current product

  • Detects connected monitors and their current wallpapers.
  • Supports local images, solid colors, and empty assignments.
  • Supports Cover, Contain, Stretch, Center, and Tile placement.
  • Saves, loads, renames, duplicates, and deletes local Presets.
  • Renders one shell-readable PNG per monitor before Apply.
  • Reports Apply progress and supports cancellation.
  • Provides an English UI, light/dark themes, keyboard access, and packaged launch diagnostics.
  • Keeps Save and Apply independent: Save persists a Preset; Apply changes Windows.

Project site · Latest release · Source and issues

Product tour

These captures use an isolated proof package with three fictional monitors and an original matte wallpaper generated for the demo. The app never changed the real desktop or read personal presets.

Monitor workspace English settings
Waller workspace with three fictional monitors and per-monitor wallpaper controls Waller English-only Settings modal with theme and cache controls
Preset manager Save a preset
Waller Manage Presets modal over the monitor workspace Waller Save as modal for naming a local wallpaper preset

See capture provenance for the isolation boundary and example-art source.

Solution map

native/
  Waller.Native.App/    WinUI shell, view models, composition, and Windows adapters
  Waller.Native.Workflows/ XAML-free use cases and shell state
  Waller.Native.Core/   domain models, rendering, persistence, and Windows contracts
  Waller.Native.Tests/  xUnit tests for Core and public workflows
  scripts/              verification, smoke, packaging, and diagnostic commands

Dependency direction is App -> Workflows -> Core, with App -> Core for UI adapters. Tests reference Workflows and Core.

Requirements

  • Windows 10 version 1809 or newer
  • .NET SDK 10.0.302 or a compatible patch selected by global.json
  • Developer Mode for packaged local launch

The repository can install the required SDK into .scratch/toolchains without changing the machine-wide installation:

powershell -ExecutionPolicy Bypass -File .\scripts\BootstrapDotnet.ps1

Run

powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Run

The root executor uses the workspace-local SDK when present, builds the interactive run self-contained, and delegates to the canonical native scripts.

Verify

Fast repository gate without launching the app:

powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Verify -SkipSmoke

Packaged launch and optional UI Automation smoke:

powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Verify -SurfaceSmoke -SettingsRoundTrip

Apply smoke temporarily changes the current user's wallpapers and restores them in finally. Run it only when that desktop mutation is acceptable:

powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Verify -ApplySmoke

Build and packaging

powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Release
powershell -ExecutionPolicy Bypass -File .\scripts\Invoke-Native.ps1 -Task Package

Package creates a development-signed MSIX under native/artifacts/. It is for local install validation, not public distribution. Production signing, Store publication, and clean-machine qualification remain separate release gates.

Microsoft Store preparation, Partner Center identity setup, .msixupload generation, certification notes, listing copy, and lifecycle evidence are documented in docs/store/README.md. The Store build remains blocked until Waller has a reserved Partner Center identity.

Local data

  • Presets and settings use package-local LocalCache\Local\Waller storage.
  • Rendered wallpapers use %USERPROFILE%\.waller\rendered so the Windows shell can read them.
  • Repository cleanup and build commands do not migrate or delete user data.

See PRIVACY.md for the public data-access and retention policy.

Documentation

Support

If Waller improves your multi-monitor setup, you can sponsor continued development or support the maintainer on Ko-fi. Focused bug reports and improvements are welcome through GitHub Issues and CONTRIBUTING.md.

License

MIT

About

Native WinUI wallpaper manager for independent multi-monitor layouts and reusable local presets.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages