Wallper v1.5.0
Performance & Settings Update
Focus on stability, real-time settings, and intelligent power management.
Trial Reset
- Trial period has been reset for all users
- Enjoy a fresh start with all new features
New Features
New Playback Settings Tab
- Video Quality Preset selector (Auto, High, Balanced, Performance)
- Maximum Resolution limit
- Frame Rate limit
- Video Volume slider with real-time preview
- Transition Duration control
- Start Delay before wallpaper plays
Smart Power Management
- Pause wallpapers when any app goes fullscreen
- Pause wallpapers on high CPU usage (80%+ threshold)
- Reduce quality automatically on battery
- Improved Pause on Battery with state persistence
- Wallpapers auto-resume when conditions change
Real-Time Settings
- All playback settings apply instantly without reload
- No more video flickering when changing settings
- Volume changes apply to all active wallpapers immediately
Optimization
Memory & Performance
- Fixed memory leaks in ExploreView when scrolling
- Removed unnecessary @ObservedObject usage across preview components
- Added proper cleanup on view disappear
- Reduced URLCache memory footprint
- Fixed priority inversion in ScreenSaverManager
Menu Bar Improvements
- Fixed video flickering when pressing play/pause
- Fixed preview not updating when switching wallpapers
- Wallpaper preview now updates instantly on change
- Improved player identity check to prevent unnecessary updates
Launch at Login
- Improved SMAppService synchronization
- Better handling of .requiresApproval state
- Added error alerts with "Open System Settings" option
- Fixed setting turning back on unexpectedly
Pause on Battery
- State now persists across app restarts
- Tracks manual pause vs automatic pause
- Won't auto-resume if user manually paused
- Proper state reset when toggling setting
New Monitors
- FullscreenMonitor – detects fullscreen apps and pauses wallpapers
- CPUMonitor – monitors system load and pauses when CPU > 80%
- Both monitors start/stop based on user settings
- Smart debouncing to prevent false triggers