Skip to content

Conversation

@evencewang
Copy link

@evencewang evencewang commented Nov 7, 2025

shrunk.mp4

Summary

  • Support for animated wallpapers along with caching support.
  • Wallpaper picker lazy-loads previews without blocking.
  • Preview viewport thumbnails could opt in / out of animation, defaulted to off.
  • Playback on / off support, currently pausing playback on lock, and resumes after unlock.
  • The related cli PR is here: background: extensive animated image support cli#68

Changes

  • cachingimagemanager.hpp + cachingimagemanager.cpp + CachingImage.qml reworked to show cached static frame 0 while animated frames decode.
    • Because of CachingImage.qml change, gifs are now also supported for .face (profile avatar). See video above when I lock my screen, I am using the same gif as the background, but they are unrelated, and you could use anything you would like for the profile avatar.
    • If we should guard against it being used for UI icons, let me know.
  • WallpaperList.qml addition to drive previews off immediately after index changes, scrolling to animated images will show a static preview right away.
  • modules/background/Wallpaper.qml + Background.qml populated with lock scope and gates playback pause/resume upon lock/unlock.

Testing

  • QT_LOGGING_TO_CONSOLE=1 quickshell -c caelestia when I had the logs to launch wallpaper picker, picking the animated wallpaper and set it, then watch the playback pause kick in while locked, and resumed after unlock.
  • Scrolling through the wallpaper selection viewport without selecting, landing on animated images will immediately kick off the preview (could use more testing).

Known issues:

  • Like static images, the caching of the thumbnail sometimes show an empty black rectangle, caching part should receive attention.

@evencewang
Copy link
Author

evencewang commented Nov 7, 2025

@Gitkubikon
Sorry! I had just seen that you had a PR open as well. 😢 I was working on this as a small extension for myself which is why I didn't check, and it blew out to be slightly more comprehensive than I thought it was going to be.
Would love your feedback on this as well since you have worked on this, and potentially improving on this feature collaboratively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant