Skip to content

anthonyhab/neowall

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

162 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NeoWall

Transform your desktop into a living canvas with GPU-accelerated shader wallpapers

Watch fractals breathe, waves ripple, and neon cities pulseโ€”all at silky 60 FPS while sipping just 2% CPU.

For Wayland desktops that deserve better than static wallpapers.

Multi-compositor support: Native backends for KDE Plasma, Hyprland, Sway, River, and universal fallback for any Wayland compositor.

neowall_demo.mp4

โœจ Why NeoWall?

Static wallpapers are so 2010. Your desktop should be as dynamic as your workflow.

  • ๐ŸŽฎ Browse Shadertoy for inspiration and compatible shaders
  • ๐Ÿ”ฅ 60 FPS animations that make your desktop feel alive
  • โšก 2% CPU usage - your GPU does the heavy lifting
  • ๐ŸŽจ 30+ included shaders - retro synthwave, plasma storms, matrix rain
  • ๐Ÿ”„ Hot-reload configs - changes apply instantly
  • ๐Ÿ–ฅ๏ธ Multi-monitor magic - different shaders per display
  • ๐ŸŒŠ Smooth transitions - fade, glitch, pixelate between wallpapers

Perfect for: r/unixporn enthusiasts, shader artists, anyone tired of boring desktops

๐Ÿš€ Quick Start

# Arch Linux
yay -S neowall-git

# From source (2 minutes)
git clone https://github.com/1ay1/neowall
cd neowall && make -j$(nproc) && sudo make install

# Launch and enjoy
neowall

Your first run creates ~/.config/neowall/config.vibe with a gorgeous retro synthwave shader.

Just works on KDE Plasma, Hyprland, Sway, River, and any Wayland compositor.

๐ŸŽจ Included Visual Experiences

Grab-and-go shaders that'll make your friends ask "how did you do that?"

Shader Vibe Perfect For
retro_wave.glsl ๐ŸŒ† Synthwave nostalgia Coding sessions
matrix_rain.glsl ๐ŸŸข Digital rainfall Terminal work
plasma.glsl ๐ŸŒˆ Flowing energy Creative work
aurora.glsl ๐ŸŒŒ Northern lights Late-night browsing
ocean_waves.glsl ๐ŸŒŠ Endless ocean Focus time
fractal_land.glsl ๐Ÿ”ฎ Infinite geometry Mind expansion

30+ more waiting in ~/.config/neowall/shaders/ after first run.

Want something specific? Browse Shadertoy.com for inspiration - many shaders can be adapted.

โš™๏ธ Dead Simple Config

~/.config/neowall/config.vibe:

# Live shader wallpaper
default {
  shader retro_wave.glsl
  shader_speed 1.2    # Animation speed multiplier (default: 1.0)
  shader_fps 60       # Target FPS for rendering (default: 60, range: 1-240)
  show_fps true       # Display real-time FPS counter (default: false)
}
# Cycling photo slideshow  
default {
  path ~/Pictures/Wallpapers/
  duration 300
  transition glitch
}
# Multi-monitor setup
output {
  eDP-1 {
    shader plasma.glsl
    shader_fps 120      # Ultra-smooth 120 FPS on main display
  }
  HDMI-A-1 {
    shader matrix_rain.glsl
    shader_fps 30       # Power-saving 30 FPS on secondary display
  }
}

Config auto-reloads on save. No daemon restarts needed.

๐ŸŽฎ Real-Time Control

neowall next         # Switch to next wallpaper
neowall pause        # Freeze current animation  
neowall reload       # Apply config changes
neowall current      # What's running now?

Perfect for switching vibes mid-session.

๐Ÿ› ๏ธ Create Your Own Magic

Drop any shader into ~/.config/neowall/shaders/:

#version 100
precision highp float;

uniform float time;
uniform vec2 resolution;

void main() {
    vec2 uv = gl_FragCoord.xy / resolution.xy;
    vec3 color = 0.5 + 0.5 * cos(time + uv.xyx + vec3(0,2,4));
    gl_FragColor = vec4(color, 1.0);
}

Shadertoy-inspired - provides iTime, iResolution, iChannel0-4 uniforms for easier porting.

๐Ÿ”ง Installation Details

System Requirements:

  • Wayland compositor (sorry X11, it's 2024)
  • OpenGL ES 2.0+ GPU
  • Basic build tools

Debian/Ubuntu:

sudo apt install build-essential libwayland-dev libgles2-mesa-dev \
    libpng-dev libjpeg-dev wayland-protocols

Arch Linux:

sudo pacman -S base-devel wayland mesa libpng libjpeg-turbo wayland-protocols

Build:

git clone https://github.com/1ay1/neowall
cd neowall
make -j$(nproc)
sudo make install

๐Ÿ’ก Pro Tips

  • Performance: Shaders run on GPU, images cycle with smart caching
  • Battery life: Animations pause when screen locks automatically
  • Multi-monitor: Each display can run different content independently
  • Transitions: glitch and pixelate effects add serious style points
  • Hot-reload: Edit configs with live preview - no restarts
  • Vsync control: Automatically enabled at 60 FPS for power efficiency, disabled for custom frame rates (30 FPS or 120+ FPS)
  • FPS monitoring: Use show_fps true to display real-time frame rate in bottom-right corner

๐Ÿค Contributing

Found a bug? Have an idea? PRs and issues welcome!

Shader artists: Submit your creations to grow the included collection.

Developers: Test on your compositor and report compatibility.

๐Ÿ† Credits

Built with love for the Wayland and r/unixporn communities.

Shader examples adapted from the incredible Shadertoy community.

๐Ÿ“œ License

MIT License - Use it, modify it, share it.


Make your desktop legendary. โญ Star if NeoWall transformed your setup!

About

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

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 97.0%
  • Makefile 1.9%
  • Shell 1.1%