While customizing my desktop with fun little overlays using Hyprwinwrap, I thought it would be really cool to display shaders on top of my wallpaper. After trying and failing to find an existing program that would suit my needs, a new project idea was born.
wayshaders (https://github.com/gen3vra/wayland-glsl-transparent-shaders)
- Lightweight – nothing except the shader rendering engine and bare necessities
- Customizable – load custom shaders and settings from disk without recompiling
- Wayland compatible transparency – I should be able to see through the rendered window if the shader outputs an alpha below 1.0
- Modern GLSL compatible
- Ability to externally set window class for use with Hyprwinwrap so we can layer it on top of our desktop
My current live wallpaper setup without wayshaders:
And with a nice star shader:
Awesome, but maybe you want something more “interesting”.
Here’s a ShaderToy converted shader called Eon:
I realized early in the project most of the fun ShaderToy projects use layering with iChannels and more than one shader. This program uses a similar structure so it’s possible to achieve advanced effects.
For instance, put a file named “shader0.frag/shader0.vert” next to wayshader for a basic one shader setup. If you need multipass rendering on that one shader, simply insert uniform sampler2D u_sampler0 as a variable. u_sampler0 will then contain a reference to last frame’s buffer so you can make trails, transformations, etc.
Want another layer? Easy. Add “shader1.frag/shader1.vert” next to the program. This shader will be rendered as its own pass on top of the previous shader.
The u_sampler variables are mapped to each shader’s index; u_sampler0 is always a reference to shader0‘s buffer. shader1 has access to u_sampler1, which is a reference to its own buffer. shader2 will have access to u_sampler0, u_sampler1, and u_sampler2 (its own buffer). Supports up to 32 “channels” with the same pattern.
It also provides basic inputs in the form of u_resolution, u_time, and u_frame.
wayshaders (https://github.com/gen3vra/wayland-glsl-transparent-shaders)
Pull requests and feedback are always welcomed.
It helps me if you share this post
Published 2026-01-30 20:06:06