Release v0.2.7
Bug Fixes
Restore Command
- Fixed tracking - now properly updated after successful wallpaper changes
- Added path validation before restoration attempts
- Proper error handling and detailed per-output error messages
- Fixes #10
GIF Pause/Resume Support
- GIF playback now respects pause/resume commands
- Timeline position preserved when paused via accumulated pause time tracking
- Pause/resume now affects both video and GIF playback equally
- Fixes #8
Seek All-Monitor Support
wallr ipc seekwithout--monitornow applies to all connected outputs- Per-output success/error reporting with detailed error messages
- No longer arbitrarily selects first output from unordered map
- Fixes #8
Hardware Acceleration Fallback
- Introduced
HwAccel::Autovariant for proper auto-detection - Auto mode: tries all hardware backends (NVDEC → VAAPI → VideoToolbox) before software fallback
- Explicit backend: tries requested backend, then falls back to software
- Software mode: uses software-only decoding without hardware attempts
- Active decoder backend reported immediately after initialization (not just on exit)
- Fixes #4
Technical Changes
- Added
gif_paused: Arc<AtomicBool>to RenderState for GIF pause state tracking - Refactored
build_decoder()with correct fallback semantics hw_in_usenow set immediately in decode_loop after successful decoder initialization- Seek command iterates all outputs with proper error aggregation
Documentation
- Updated CHANGELOG.md
- Updated docs/video-wallpaper.md with corrected hardware acceleration behavior
- Updated docs/cli-reference.md with pause/resume/seek/blank/restore details
- Updated docs/architecture.md with video/GIF playback implementation details
Installation
cargo install wallrOr from source:
git clone https://github.com/programmersd21/wallr.git
cd wallr
git checkout v0.2.7
cargo install --path wallr