RetroFed Forums
Your home away from modern life.
I built a GPU-accelerated wallpaper engine for Wayland in Rust — Wallr 🚀
Post Reply
AuthorMessage
programmersd21
thelemmy.club
programmersd21@thelemmy.club
Joined: 2026-09-27
Posted:   Subject: I built a GPU-accelerated wallpaper engine for Wayland in Rust — Wallr 🚀 Quote

Hey everyone!

I'm Soumalya, a developer interested in Linux and systems programming. I've been working on Wallr, a wallpaper engine for Wayland written in Rust, and wanted to share it here to get feedback from other people in the open-source community.

I started building it partly to learn more about Rust, GPU rendering, and how Wayland works under the hood. It's grown quite a bit since then.

Wallr supports static images, GIFs, and video wallpapers. It also has 11 transition effects, per-monitor wallpaper settings, directory watching, and optional integrations with Matugen, Wallust, and Pywal.

Under the hood, it uses wgpu for rendering, with a background daemon that communicates with the CLI over a Unix socket. Video playback uses FFmpeg, with hardware decoding where supported. I've also included a benchmark script to compare Wallr with awww, although I'd like to test it across more hardware and compositors before drawing broad conclusions about performance.

It currently targets Hyprland, Sway, niri, and compatible KDE Plasma 6 setups. GNOME/Mutter isn't supported at the moment.

For transparency, I used AI assistance during development to make my workflow easier. I'm continuing to work on the project, test it, and improve the implementation.

Source code and installation instructions:
https://github.com/programmersd21/wallr

I'd appreciate feedback on the code, architecture, compatibility, or anything that could be improved. If you use another Wayland wallpaper tool, I'd also be interested in hearing what you like about it and what you think could be done differently.

Thanks for reading!

-20   Original
wezzzy
lemmy.blahaj.zone
wezzzy@lemmy.blahaj.zone
Joined: 2024-02-24
#2 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

ai :(

22
Joelk111
lemmy.world

Joelk111@lemmy.world
Joined: 2023-07-01
#3 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

How is it better than the default KDE wallpaper stuff?

7
ILikeBoobies
lemmy.ca
ILikeBoobies@lemmy.ca
Joined: 2023-08-14
#4 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

How is it better than the default KDE wallpaper stuff?

Since I can't find where plasma deals with wallpaper I have to guess;

This supports animated (video) playback and runs on the gpu instead of the cpu.

3
trevor (any/all)
lemmy.blahaj.zone
trevor@lemmy.blahaj.zone
Joined: 2023-06-10
#5 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

ai :(

Where are you seeing anything about AI? None of the usual warning signs are there.

-3
Somecall_metim
lemmy.dbzer0.com
Somecall_metim@lemmy.dbzer0.com
Joined: 2023-06-20
#6 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Where are you seeing anything about AI? None of the usual warning signs are there.

Got to look at what OP wrote above ^ "For transparency, I used AI assistance during development to make my workflow easier. I’m continuing to work on the project, test it, and improve the implementation."

8
trevor (any/all)
lemmy.blahaj.zone
trevor@lemmy.blahaj.zone
Joined: 2023-06-10
#7 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Got to look at what OP wrote above ^ "For transparency, I used AI assistance during development to make my workflow easier. I’m continuing to work on the project, test it, and improve the implementation."

Ah, whoops. I usually go straight to the repo for that. Didn't see anything there.

Thanks for pointing that out.

4
Anarki_
lemmy.blahaj.zone
Anarki_@lemmy.blahaj.zone
Joined: 2023-07-03
#8 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Since I can't find where plasma deals with wallpaper I have to guess; This supports animated (video) playback and runs on the gpu instead of the cpu.

There's a Plasma plugin that adds Wallpaper Engine support calles Waywallen 🙂

3
TheDarkQuark
lemmy.world
TheDarkQuark@lemmy.world
Joined: 2023-06-17
#9 Posted: · edited   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Ngl, the recent influx of AI-generated projects is slightly unnerving. While I don't know the extent of your technical expertise, programmersd21, I’ve noticed many vibe-coded projects pop up, where the maintainer doesn't actually understand their own codebase. All the philosophical arguments against AI aside, this paradigm might introduce severe security and maintainability flaws (I do not know to what extent this is applicable to this particular project).

I am not an expert in Rust. But, skimming 2 random files in under 5 minutes revealed code that I wouldn't let pass a review:

  1. https://github.com/programmersd21/wallr/blob/72e10a02ae9fdd65ba2f5a440f45906d0fffc6a4/wallr-core/src/wallpaper/mod.rs#L156

This function called apply_wallpaper doesn't apply a wallpaper. Instead it checks if the file exists, and logs stating it will apply otherwise.

  1. https://github.com/programmersd21/wallr/blob/72e10a02ae9fdd65ba2f5a440f45906d0fffc6a4/wallr-core/src/video/gpu.rs#L37

This file contains the same adapter enumeration logic, but it is implemented differently across the detect_adapters and select_adapter functions.

Also,

~/wallr $ rg detect_adapter
wallr-core/src/video/mod.rs
12:pub use gpu::{GpuSelection, detect_adapters, select_adapter};

wallr-core/src/video/gpu.rs
35:pub async fn detect_adapters(instance: &wgpu::Instance) -> Vec<AdapterInfo> {

I do not know Rust, but this looks like dead code to me (these are the only two mentions of that functions; commit 72e10a02 btw). Please correct me if I'm wrong.

If my assessment above is incorrect due to me misunderstanding the code, I retract my statement towards this project. My concerns still exist though. Perhaps it's truly time to stop writing code that is maintainable by humans. ¯\(ツ)/¯

31
xelar
lemmy.ml

xelar@lemmy.ml
Joined: 2021-01-21
#10 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

"I built" is gonna be the phrase of the year

16
xelar
lemmy.ml

xelar@lemmy.ml
Joined: 2021-01-21
#11 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

"I built" is gonna be the phrase of the year

With "It works"

12
Prairie_Madness
lemmy.world
Prairie_Madness@lemmy.world
Joined: 2026-08-10
#12 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

20
wezzzy
lemmy.blahaj.zone
wezzzy@lemmy.blahaj.zone
Joined: 2024-02-24
#13 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Ah, whoops. I usually go straight to the repo for that. Didn't see anything there. Thanks for pointing that out.

Yea i also searched for that before actualy reading :) no disclosure on the repo is not good

4
Zamundaaa
discuss.tchncs.de
Zamundaaa@discuss.tchncs.de
Joined: 2023-06-11
#14 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Since I can't find where plasma deals with wallpaper I have to guess; This supports animated (video) playback and runs on the gpu instead of the cpu.

plasmashell supports gifs and videos, and it runs on the GPU, not the CPU.

3
setVeryLoud(true);
lemmy.ca

isVeryLoud@lemmy.ca
Joined: 2023-04-19
#15 Posted:   Subject: Re: I built a GPU-accelerated wallpaper engine for Wayland in... Quote Reply

Did you basically bang rocks together until it seemed to work?

Did you do a code review? That code is horrendous, I would not run that on my machine as a constantly running piece of software that renders my wallpaper.

2
Post Reply Page 1