Skip to content
/ neowall Public

๐ŸŽจ A reliable Wayland wallpaper engine written in C. Multi-monitor support, smooth transitions, hot-reload. For Wayland (Sway, Hyprland, River. and KWin) and X11

License

Notifications You must be signed in to change notification settings

1ay1/neowall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NeoWall

Live GPU shaders as your wallpaper. Yes, really.

Build License Release

neowall_demo.mp4
neowall_mouse.mp4


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
Dependencies
# 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

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:

  1. Copy code from shadertoy.com
  2. Save to ~/.config/neowall/shaders/cool.glsl
  3. Config: shader cool.glsl
  4. 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
  • Same code runs everywhere

vs Others

NeoWall swww mpvpaper hyprpaper
Live shaders โœ… โŒ โŒ โŒ
Shadertoy โœ… โŒ โŒ โŒ
Videos โŒ GIFs โœ… โŒ
Images โœ… โœ… โŒ โœ…
X11 โœ… โŒ โŒ โŒ
Wayland โœ… โœ… โœ… โœ…
Interactive โœ… โŒ โŒ โŒ

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.


Bugs ยท Chat ยท โญ Star if cool