Skip to content

Releases: K4RLT/dde-desktop-videowallpaper-plugin

v2.0

30 May 14:18

Choose a tag to compare

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

09 May 01:26

Choose a tag to compare

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

25 Apr 01:44

Choose a tag to compare

What's Changed

Bug Fixes

  • Remove resizeEvent override from VideoProxy (fought layout)
  • predicateAction lookup uses key() instead of values().contains()
  • turnOn() was unsubscribing instead of subscribing WindowAboutToBeBuilded
  • ffprobe stdout read before deleteLater() (read-after-free)
  • play() early-returns if videos still empty after refreshSource()
  • checkResource() debounced to suppress notification spam
  • CMakeLists now calls find_package(PkgConfig) before pkg_check_modules
  • %0%1 in notification string
  • Volume migration now persisted to DConfig on first run
  • checkResource lambda guarded against stale this after turnOff()
  • disableAction no longer wipes pauseOnFullscreen/pauseIdleSeconds

New Features

  • Volume control (0–100) replacing binary enableAudio toggle
  • 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

09 Mar 09:07

Choose a tag to compare

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

v1.2

05 Mar 02:34

Choose a tag to compare

Initial release

  • Scale modes: Fill, Fit, Crop
  • Audio toggle
  • Pause on fullscreen
  • Pause on idle (30s / 1min / 5min / 10min)
  • All settings persist across reboots
  • HiDPI / responsive screen fix