I wanted a live wallpaper on my laptop. What I did not want was a launcher, an account, a subscription, or a copy of Chromium sitting behind my desktop rendering a web page at 60 frames a second while I work.
So I wrote FeatherWall. It is MIT licensed, free, and there is no paid version to upsell you to.
Download for Windows (7.5 MB) ยท Source ยท Site
What it costs to run
This is the part I care most about, so I measured it rather than estimating. Sampled over 30 to 40 second windows on a running instance, Windows 11 Pro build 26200, 24 logical cores, 2560x1600 at 150% scaling.
| State | Memory | CPU |
|---|---|---|
| Still image | 151 MB | 0.03% |
| Video, paused | 246 MB | 0.01% |
| 1080p playing | 199 MB | 1.0% |
| 4K playing | 270 MB | 0.9% |
One process. Not a service plus a launcher plus a renderer plus a browser host.
A paused video costs less CPU than a still image, which looks wrong until you realise the still one is still redrawing its clock every second. Playback stops rather than throttles for fullscreen apps, the lock screen, remote sessions and battery saver, so a game never competes with your wallpaper for the GPU.
What it does
Video or image wallpapers, and an optional clock widget you can put in any of nine positions in any font you have installed, at whatever size, colour and opacity you want. The settings panel previews the clock with the same renderer that paints your desktop, so what you pick is what you get.
There is a small built-in gallery of public domain and CC0 wallpapers, with attribution shown in the UI, or you can point it at any video or image on disk.
No account. No telemetry. Nothing phones home.
Install
Download and unzip, then run featherwall.exe. It lives in the tray.
Releases are unsigned, so SmartScreen will warn you the first time. Verify what you downloaded before running it:
Get-FileHash .\featherwall-v0.1.0-win-x64.zip -Algorithm SHA256
Should be 300f59a28269fc2fc034ad86ee64d6fd320cd17f8c2e7a31c789bcc28844dfd7.
Or skip the binary entirely and build it yourself:
git clone https://github.com/RitvikDayal/featherwall
cd featherwall
dotnet publish src/FeatherWall -c Release
Needs Windows 10 1809 or newer and the .NET 10 desktop runtime.
Why it is not a browser in a trenchcoat
Most live wallpaper tools park a borderless window behind your icons and render into it. FeatherWall inserts a real visual into the desktop's own composition tree through Direct3D 11 and DirectComposition, which is why your icons, your right-click menu and your window ordering all keep working normally.
That choice paid off in a way I did not expect.
Newer Windows 11 desktops changed shape. The classic approach sends an undocumented message to Progman to spawn a WorkerW window and reparents into it, and on the newer layout that no longer applies. It is why a lot of wallpaper tools started showing a black screen, and why the forums are full of "change your resolution and change it back."
FeatherWall detects which desktop it is on by reading one extended window style:
const int GWL_EXSTYLE = -20;
const uint WS_EX_NOREDIRECTIONBITMAP = 0x00200000;
bool raised = ((long)GetWindowLongPtr(progman, GWL_EXSTYLE)
& WS_EX_NOREDIRECTIONBITMAP) != 0;
That flag means the window has no redirection surface. There is no bitmap behind it for classic painting to land in, which is exactly why those tools go black: they are painting into nothing, and getting no error for it. On that topology you have to present through DirectComposition, which FeatherWall already does, and parent into Progman below SHELLDLL_DefView instead of chasing a WorkerW.
It handles both layouts, retries while the wallpaper layer is created lazily after logon, and re-attaches when explorer restarts. The whole thing is in DesktopLayerHost.cs if you want to read it.
What is not done
I am one person with one monitor, so I will be straight about this rather than let you find out.
Multi-monitor layouts, the classic Windows 10 desktop topology, and recovery after an explorer restart are all written and unit-tested, but have never run on real hardware other than mine. They are open issues, tagged, and they are the single most useful thing anyone could help with:
- #3 Verify multi-monitor behaviour on real hardware
- #4 Verify the classic WorkerW topology on Windows 10
- #5 Verify recovery after an explorer.exe restart
If you run it on two monitors and it does something stupid, an issue with a screenshot is worth more to me than a star.
Try it
Download for Windows ยท Star it on GitHub ยท featherwall site
C# and .NET 10 over Win32, with Vortice for D3D11 and DirectComposition. MIT licensed. Contributions welcome, and there are good first issue tickets waiting.


Top comments (0)