v1.0.0
The first stable release. Fade is a Windows tray app that automatically minimizes or closes inactive windows after configurable per-app or per-bucket timeouts.
Highlights
- Bucket groups — pre-baked categories (Browsing, Communication, Media, Development, Gaming, Utilities) that manage many apps with one timeout. Per-app rules override bucket rules.
- Brand-accurate icons — recognizes ~25 common apps including Chrome, Firefox, Slack, VSCode, Steam, Spotify, Discord, plus AI tools (Claude, OpenAI Codex, Cursor, Antigravity). Falls back to themed glyphs for everything else.
- Activity tab — see what's currently being tracked with idle times, and a rolling 100-entry log of actions Fade has taken.
- System tray — runs silently. Right-click for show/pause/quit. Closing the window hides to tray, doesn't quit.
- Real-time foreground tracking — a Win32
SetWinEventHookkeeps idle timers current without waiting for the next poll. - Search + reorder + custom icons — searchable glyph picker, drag-free reorder via kebab menu, inline rename for groups.
- Auto-start with Windows is a one-click toggle.
- Portable — config (
fade.toml) lives next to the executable; no installer.
Reliability work that shipped late in the cycle
- Idle-window staleness fix: the Slint software renderer was keeping a stale framebuffer after long idle, requiring a hover to repaint. A
redraw-tickproperty + invisible sentinel now forces a clean repaint every 2 s. - Foreground-timestamp
HashMapwas insert-only (real memory leak). Now retained per poll to running processes only. polling_interval_secsis clamped[1, 3600]; rule timeouts clamped[1, 10080]minutes — out-of-range hand-edits or legacy values get auto-corrected on load.- Corrupt config files are preserved as
fade.toml.corrupt-<unix_ts>before falling back to defaults, so no settings get silently lost. - 35 GUI callbacks were silently discarding config save errors; they now log via
log::error!. process_start_timequeried viaGetProcessTimeswith afirst_seenfallback when the process is protected and the call returns access-denied.
Install
Download fade-v1.0.0-windows-x86_64.zip below. Unzip somewhere stable and run fade.exe. The settings window opens once on first launch — afterwards Fade lives in the tray.
Build from source
Cross-compiles from Linux/WSL via mingw-w64:
sudo apt install mingw-w64 pkg-config libfontconfig1-dev
rustup target add x86_64-pc-windows-gnu
cargo build --release --target x86_64-pc-windows-gnuTests run cross-platform: cargo test (52 tests, Win32 isolated behind a WindowApi trait + mock).
Credits
Brand icons bundled from simpleicons.org (CC0) and Tabler Icons (MIT). See assets/icons/LICENSES.md in the release zip for full attribution.
Inspired by Quitter by Marco Arment.
Full Changelog: https://github.com/frankieg33/fade/commits/v1.0.0