A knight lives on your taskbar. He walks right, forever, killing scarecrows while you work — and keeps at it while your machine is off.
- Windows x64 · 350 KB · .exe
- Linux there was an X11 build; it was dropped — see below
- macOS no build — would need an NSStatusItem backend
Idle games are supposed to be invisible. Most of them aren't. These numbers are read off the running process, not estimated.
| Metric | Villain | Typical |
|---|---|---|
| Memory | 2.4 MB | 300 MB – 2 GB |
| CPU idle | 0.32% | 20 – 25% |
| Processes | 1 | 4 – 8 |
| Download | 350 KB | 200 MB+ |
Measured over 180 s on Windows 11, v0.2.0: 2.38 MB private bytes, 12.4 MB working set, 0.32% of one core (0.013% of a 24-thread machine), 0.9 ms per frame, 3 threads, 1 process. No engine, no web view, no GPU context. Collapse the strip and the paint loop drops to 1.5 fps while the game keeps ticking at its normal rate.
The strip goes where you want it and takes as much of the bar as you want to give it. Drag the middle to slide it along; drag either end to make it longer or shorter. Wherever you leave it is where it comes back.
- Pure Rust, no dependencies
- No engine, no web view, no GPU context, and nothing in
Cargo.tomlbut the Windows API bindings. The font, the rasterizer, the sprite decoder and the big-number type are all in the box, which is most of why the download is a third of a megabyte. - A layered window
UpdateLayeredWindowtakes a finished premultiplied bitmap, so the window never answersWM_PAINT— there is no paint loop. The message pump blocks inGetMessageW, and a coalescable timer lets the kernel batch our wakeups with everyone else's instead of waking a core on our schedule.- Numbers that don't run out
- Counters are a mantissa-and-exponent pair rather than a
u64, because an idler's economy passes 18 quintillion in an afternoon and au64overflows in silence. Past the named suffixes it falls back to scientific notation. - Windows only, deliberately
- There was an X11 backend. It was cut: the thing being built is a Windows taskbar resident, and X11 could only ever approximate that on a desktop that happens to have a panel. Everything above the platform layer is still free of platform types, so a second backend is one file rather than a rewrite.
- It's a prototype. Version 0.2.1. Rough edges are the point, and the upgrade curve is illustrative rather than balanced.
- The .exe is unsigned. SmartScreen will warn you. "More info" → "Run anyway", or don't — that's a reasonable call for a binary off the internet.
- Offline progress is capped at 24 hours. Longer than that and you're told it was capped rather than quietly shorted.
- Your save lives in
%APPDATA%\task-bar-villain\save.txt. It's plain text. Delete it to start over; edit it if you'd rather cheat. - Vertical taskbars aren't handled. A side-docked bar has no room for a 16-pixel-tall strip, so he falls back to a band along the bottom of the screen instead.
- Windows 11 z-order is a fight, not a contract. He reclaims the top of the stack once a second. It works; it isn't guaranteed by anything.