Neowall
GPU-accelerated live wallpaper engine for Linux using GLSL shaders. Runs on Wayland and X11.
Install / Use
/learn @1ay1/NeowallREADME
What is this?
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.
Install
Pre-built binaries:
Download from Releases:
# Arch, Debian/Ubuntu, or Fedora
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo mv neowall /usr/local/bin/
Arch (AUR):
yay -S neowall-git
Build from source:
git clone https://github.com/1ay1/neowall && cd neowall
meson setup build && ninja -C build
sudo ninja -C build install
<details>
<summary>Dependencies</summary>
# 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-devel
</details>
Config
Lives 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 }
}
Commands
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?
Shaders
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
GLEditor — live shader editor that exports directly to NeoWall. Write, preview, one-click install.
yay -S gleditor-git
How it works
┌────────────────────────────────────────┐
│ 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
- Auto-pauses when fullscreen windows cover wallpaper
- Same code runs everywhere
vs Others
| | NeoWall | swww | mpvpaper | hyprpaper | |-|---------|------|----------|-----------| | Live shaders | ✅ | ❌ | ❌ | ❌ | | Shadertoy | ✅ | ❌ | ❌ | ❌ | | Videos | ❌ | GIFs | ✅ | ❌ | | Images | ✅ | ✅ | ❌ | ✅ | | X11 | ✅ | ❌ | ❌ | ❌ | | Wayland | ✅ | ✅ | ✅ | ✅ | | Interactive | ✅ | ❌ | ❌ | ❌ | | Fullscreen pause | ✅ | ❌ | ❌ | ❌ |
NeoWall = only Linux tool for live GPU shader wallpapers.
Caveats
- KDE Plasma: Desktop icons might hide. Use a dock.
- No video wallpapers: Use mpvpaper for that.
Contributing
meson setup build --buildtype=debug
ninja -C build
./build/neowall -f -v
PRs welcome: shaders, bug fixes, docs, testing.
License
MIT — do whatever you want.
<p align="center"> <a href="https://github.com/1ay1/neowall/issues">Bugs</a> · <a href="https://github.com/1ay1/neowall/discussions">Chat</a> · <a href="https://github.com/1ay1/neowall">⭐ Star if cool</a> </p>
Related Skills
node-connect
352.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
