A Windows wallpaper manager built in Rust with a native egui desktop UI.
It is designed to be simple to use:
- add folders or a single image
- rotate wallpapers randomly or in order
- apply wallpaper once or run a slideshow
- auto-rotate portrait images
- choose Windows wallpaper style
- save settings and restore them on next launch
- support tray behavior, startup launch, theme, and opacity
- folder list with per-folder
include subfolders - single-image source
- random or sequential slideshow
Nextbutton for immediate change- wallpaper styles:
Fill,Fit,Stretch,Tile,Center,Span - two built-in themes:
Dark: purple-accent dark workspaceLight: warm beige / rice-color workspace
- adjustable window opacity
- run on startup
- minimize to tray
- English and Traditional Chinese UI
- optional multi-image stitching with crop-based output sizing
src/
├─ main.rs # App entry point
├─ app/ # egui UI and app orchestration
├─ image_ops/ # Image discovery, processing, stitching, temp cleanup
├─ slideshow/ # Background slideshow worker
├─ settings/ # JSON settings model and persistence
├─ startup/ # Windows startup registry integration
├─ state/ # Runtime state mapped from settings
├─ theme/ # egui theme helpers
├─ i18n/ # English / Traditional Chinese strings
└─ wallpaper/ # Windows wallpaper style + apply logic
Windows only.
cargo run
Release build:
cargo build --releaseUseful development commands:
cargo check cargo fmt cargo clippy
- Add one or more folders, or choose a single image.
- Configure slideshow interval, order, wallpaper style, theme, and optional stitching.
- Click
Set onceto apply immediately orStartto run the slideshow. - The app stores your settings in the per-user config directory and restores them on next launch.
- top toolbar: language, theme, window opacity
- action row:
Set once,Next,Start/Stop,Reset to Defaults - sources pane: folder/image management and source list
- settings pane: slideshow, wallpaper style, and startup behavior
- bottom status bar: current app state and errors
- settings: per-user
settings.jsonvia thedirectoriescrate - generated wallpaper cache / temp files: created under the user profile and cleaned automatically when needed
- This is the active codebase. Old C++ rewrite files were removed.
- Keep changes Windows-focused.
- Do not commit build output like
target/or temporary files. - Keep the current compact utility-style layout; avoid dashboard-style redesigns unless explicitly requested.
- If behavior changes, update README.md and AGENTS.md.