Live GPU shaders as your wallpaper. Yes, really.
neowall_demo.mp4
neowall_mouse.mp4
NeoWall renders Shadertoy shaders directly on your desktop. Wayland, X11, multi-monitor, 60fps, ~2% CPU.
neowall # That's it. You now have an animated wallpaper.Arch (AUR):
yay -S neowall-gitBuild it yourself:
git clone https://github.com/1ay1/neowall && cd neowall
meson setup build && ninja -C build
sudo ninja -C build installDependencies
# Debian/Ubuntu
sudo apt install build-essential meson ninja-build libwayland-dev \
libgles2-mesa-dev libpng-dev libjpeg-dev wayland-protocols \
libx11-dev libxrandr-dev
# Arch
sudo pacman -S base-devel meson ninja wayland mesa libpng libjpeg-turbo \
wayland-protocols libx11 libxrandr
# Fedora
sudo dnf install gcc meson ninja-build wayland-devel mesa-libGLES-devel \
libpng-devel libjpeg-turbo-devel wayland-protocols-devel \
libX11-devel libXrandr-develLives at ~/.config/neowall/config.vibe
Shader wallpaper:
default {
shader retro_wave.glsl
shader_speed 0.8
}
Image slideshow:
default {
path ~/Pictures/Wallpapers/
duration 300
transition glitch
}
Multi-monitor:
output {
DP-1 { shader matrix_rain.glsl }
HDMI-A-1 { path ~/Pictures/ duration 600 }
}
neowall # start
neowall kill # stop
neowall next # next wallpaper
neowall pause # pause
neowall resume # resume
neowall list # show cycle
neowall set 3 # jump to index 3
neowall current # what's playing?30+ included. Some highlights:
| Vibe | Shaders |
|---|---|
| 🌆 Synthwave | retro_wave synthwave neonwave_sunrise |
| 🌊 Nature | ocean_waves aurora sunrise moon_ocean |
| 💻 Cyber | matrix_rain matrix_real glowing_triangles |
| 🔮 Abstract | fractal_land plasma mandelbrot |
| 🌌 Space | star_next starship_reentry cross_galactic_ocean |
Use any Shadertoy shader:
- Copy code from shadertoy.com
- Save to
~/.config/neowall/shaders/cool.glsl - Config:
shader cool.glsl - Done
GLEditor — live shader editor that exports directly to NeoWall. Write, preview, one-click install.
yay -S gleditor-git┌────────────────────────────────────────┐
│ NeoWall Daemon │
├────────────────────────────────────────┤
│ Config Parser → Event Loop → Shaders │
├────────────────────────────────────────┤
│ Wayland (layer-shell) │ X11 (EWMH) │
├────────────────────────────────────────┤
│ EGL / OpenGL 3.3 │
└────────────────────────────────────────┘
- Pure C, single binary
- GPU does the work, CPU chills
- timerfd/signalfd — no busy loops
- Same code runs everywhere
| NeoWall | swww | mpvpaper | hyprpaper | |
|---|---|---|---|---|
| Live shaders | ✅ | ❌ | ❌ | ❌ |
| Shadertoy | ✅ | ❌ | ❌ | ❌ |
| Videos | ❌ | GIFs | ✅ | ❌ |
| Images | ✅ | ✅ | ❌ | ✅ |
| X11 | ✅ | ❌ | ❌ | ❌ |
| Wayland | ✅ | ✅ | ✅ | ✅ |
| Interactive | ✅ | ❌ | ❌ | ❌ |
NeoWall = only Linux tool for live GPU shader wallpapers.
- KDE Plasma: Desktop icons might hide. Use a dock.
- No video wallpapers: Use mpvpaper for that.
meson setup build --buildtype=debug
ninja -C build
./build/neowall -f -vPRs welcome: shaders, bug fixes, docs, testing.
MIT — do whatever you want.
Bugs · Chat · ⭐ Star if cool