Releases: K4RLT/dde-desktop-videowallpaper-plugin
Releases · K4RLT/dde-desktop-videowallpaper-plugin
v2.0
What's new
- NVIDIA support: uses Vulkan renderer instead of OpenGL (nvdec hardware decoding)
- Lock screen: wallpaper pauses instantly on lock, resumes on unlock (D-Bus signal, zero polling cost)
- Fix: minimized/hidden windows no longer keep wallpaper paused
- Fix: mpv window ID set before init (no more black frame timing issues)
- Fix: duration/position signals corrected to double precision
- Fix: GPU detection cached, runs once instead of once per screen
- Fix: play() now uses retry logic same as refreshSource()
v1.5
dde-desktop-videowallpaper-plugin (1.5) stable; urgency=medium
- fix: HiDPI display support - video now renders at physical pixel size
instead of logical pixels, fixing small video block on scaled displays - fix: portrait monitor no longer crashes dde-shell on plugin load
- fix: mpv GL context failure is now handled gracefully instead of
throwing and killing dde-shell - fix: setProperty renamed to setMpvProperty to avoid Qt base class conflict
- chore: hwdec set to auto for universal GPU compatibility
- chore: video looping enabled by default
- chore: default volume set to 0 (muted) on load
-- K4RLT karl@karl-pc Sat, 09 May 2026 09:00:00 +0800
v1.4
What's Changed
Bug Fixes
- Remove
resizeEventoverride from VideoProxy (fought layout) predicateActionlookup useskey()instead ofvalues().contains()turnOn()was unsubscribing instead of subscribingWindowAboutToBeBuildedffprobestdout read beforedeleteLater()(read-after-free)play()early-returns if videos still empty afterrefreshSource()checkResource()debounced to suppress notification spamCMakeListsnow callsfind_package(PkgConfig)beforepkg_check_modules%0→%1in notification string- Volume migration now persisted to DConfig on first run
checkResourcelambda guarded against stalethisafterturnOff()disableActionno longer wipespauseOnFullscreen/pauseIdleSeconds
New Features
- Volume control (0–100) replacing binary
enableAudiotoggle - Playback speed control (0.25×–2×) persisted in DConfig
- Per-screen video assignment for multi-monitor setups
applyMpvSettings()applies volume + speed on every play/refresh- Idle/scale/speed/volume menus use
QActionGroup(exclusive)
v1.3 — Bug fixes & HiDPI render correction
fix: bug fixes, HiDPI render correction, async ffprobe, cache sync - wallpaperconfig: configChanged() now updates cached values before emitting signals - wallpaperengine: fix enable handler guard, fix play/refreshSource race, fix premature malloc_trim - wallpaperengine: turnOn() guards against double-call watcher/timer leak - wallpaperengine: getVideos() now filters by video extension only - videowallpapermenuscene: ffprobe is now async to avoid freezing the UI thread - videoproxy: document MpvWidget::setProperty routing to mpv - rootwidgeteventfilter: replace dynamic_cast with qobject_cast - mpvwidget: use physical pixels (dpr) for HiDPI displays (fix by @DonkeyKongG3me) - README: credit @DonkeyKongG3me on Telegram for HiDPI fix