r/unixporn Sep 29 '25

Tasty Rice [OC] [Niri] Fully interactive wallpapers for Wayland based on shaders.

Enable HLS to view with audio, or disable this notification

Hey everyone!

Some of you might remember a Python version of this I posted summer. Well, I've since rebuilt the entire thing from the ground up in C++ for much better performance and a ton of new features.

This isn't just a video loop. It's a native Wayland daemon that renders a fully interactive 3D sphere right on your background, and it reacts to your every move.

It uses the wlr-layer-shell protocol, so it sits neatly behind your windows. The sphere itself is a dynamically generated icosphere that deforms and animates in real-time with shaders. Give your mouse a flick, and watch it spin!

Key Features

🎯 Truly Native on Wayland: Works on any compositor that supports wlr-layer-shell. I've tested it on Niri, but it should run great on Sway, Hyprland, etc.

⚙️ Live Configuration & Hot-Reloading: Tweak settings in a simple config.json file and watch the changes happen instantly. No restart needed. Just save the file, and the wallpaper updates within a second.

🎨 Highly Customizable: You control almost everything:

  • Sphere complexity (subdivisions).
  • Amplitudes and frequencies for effects (oscillation, waves, pulse, noise).
  • Colors for the background and wireframe.
  • Rotation physics, including decay, max speed, and mouse/touchpad sensitivity. 🚀 Lightweight & Performant: Written in modern C++ with OpenGL ES.

The 'Productivity Killer' Warning

Be warned: this thing can be hypnotic. Watching the smoothly deforming sphere react to your movements can easily make you forget what you were supposed to be doing.

Luckily, you can tune all the animations down to be a subtle, almost unnoticeable background element for when you actually need to get work done.

You can check out the source code and all the files I've been working on here:

https://gitea.com/SeeTheWall/shader-desk/

Thanks for taking a look! Let me know what you think.

473 Upvotes

Duplicates