Swww support
Feature Description
The wallpaper picker allows using Swww to render animated wallpapers without sacrificing automatic theming.
Use Case
As specified above, the default wallpaper daemon doesn't allow rendering animated wallpapers, and setting up Swww manually doesn't integrate well with auto theming or the shell's wallpaper picker.
Compositor
Is this feature specific to one compositor?
- [x] All compositors
- [ ] niri
- [ ] Hyprland
- [ ] dwl (MangoWC)
- [ ] sway
Proposed Solution
These are the steps I take to use Swww with the shell on Niri:
- Run
swww-daemonat startupspawn-at-startup "swww-daemon" - Adding a layer-rule to render the wallpaper on overview and make it not move with workspace changing:
layer-rule {
match namespace="^swww-daemon$"
place-within-backdrop true
}
- Run the command
swwwwith the path to desired imageswww img path/to/image
Currently I can't modify the wallpaper picker to utilize swww commands and display the selected wallpaper because I don't have a good understanding on the shell's Quickshell config structure.
For the auto theming, I also have no solutions yet but I believe we can use a tool like ffmpeg to extract any frame of the animated image and generate color palettes using the extracted frame.
Alternatives/Existing Solutions
None
Yeah good idea . I just wanted to write smiller post. I just wish animated gif wallpapers would work.
I think keeping DMS strictly performant and as lightweight as possible is better. There is a plugin for allowing the use of the linux-wallpaperengine version that can take the animated wallpapers from wallpaper engine. My thought is that a plugin to use SWWW to replace the default wallpaper would be a good idea.
I also think it should be a plugin, managing external processes from within the shell adds a lot of complexity.
It's also worth exploring if we can support video wallpapers natively. There was a PR for it awhile ago but it went unmerged
Closing in favor of https://github.com/AvengeMedia/dms-plugin-registry/issues/34 , add details as you see fit there.
We do not intend to add swww as a dependency/optional dependency, within the shell itself.