Releases: 1ay1/neowall
Releases · 1ay1/neowall
Release list
NeoWall v0.5.2
NeoWall 0.5.2
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- release: neowall 0.5.2
- wayland: gate config-load pointer bind on advertised seat capability
- docs: describe the phase-locked pacer + damage-aware present pipeline
- render: damage-aware presentation via eglSwapBuffersWithDamage
- render: close the pacer loop with wp_presentation feedback
- render: phase-lock the vsync-off frame pacer to real present times
- terminal: upload only changed cell rows, not the whole grid
- docs: document the terminal-as-wallpaper feature
- terminal: answer DSR/DA queries so probing TUIs (btop) animate
- terminal: render color emoji via dep-free CBDT/CBLC + sbix decoder
- test(terminal): glyph_synth coverage + charset/cursor/OSC screen tests
- perf(terminal): upload only the changed atlas rows, not the whole 2048x2048
- feat(terminal): config keys for fonts, cwd, env, colours, font size
- feat(terminal): keyboard input for terminal wallpapers (xkbcommon)
- feat(terminal): OSC handler + DEC line-drawing charset
- feat(terminal): glyph fallback chain, bold/italic faces, wide glyphs
- feat(terminal): cursor visibility, child auto-restart, text attributes
- feat(terminal): render braille as round dots with gaps, like a real font
- fix(terminal): clamp atlas fetch to glyph interior — kills per-cell seams
- perf(terminal): 3x supersampled glyph atlas for smooth (AA) text + graphs
- feat(terminal): mouse input forwarding + procedural box/block/braille glyphs
- fix(loop): keep terminal wallpapers animating (re-arm needs_redraw + frame timer)
- fix(render): route WALLPAPER_TERMINAL through the shader render path
- terminal-as-wallpaper: full GPU path — any TUI as the wallpaper
- terminal: dynamic font-rasterized glyph atlas (stb_truetype, any font)
- terminal: in-tree VT/xterm-class emulator core (PTY + parser + screen)
- x11: let the window manager stack the wallpaper as the desktop
- feat(wayland): implement wp_fractional_scale_v1 — render at true density (#62)
- fix(span): make mixed/fractional-scale spanning exact, close the seam
- feat: span one shader across every monitor in a group
- fix(wayland): set initialized only once the registry is fully up, and guard re-entry
- fix(wayland): track every output a toplevel is on, not just the last
- fix(output): skip cycle entries whose shader fails to load
- x11: apply the EWMH desktop hints that are already interned
- fix(cli): bound the index parsed by
neowall set <index> - font: anti-alias glyph edges (LINEAR atlas + fwidth smoothstep)
- docs: document the "font" bitmap-atlas channel
- font: add bitmap font atlas channel + GLSL text helpers
Packages
Pick the native package for your distro — each pulls in the right runtime deps.
| Distro | File | Install |
|---|---|---|
| Arch / Manjaro | neowall-*-x86_64.pkg.tar.zst |
sudo pacman -U <file> |
| Debian / Mint | neowall_*_amd64.deb |
sudo apt install ./<file> |
| Ubuntu 24.04+ | neowall_*-ubuntu24.04_amd64.deb |
sudo apt install ./<file> |
| Fedora / RHEL | neowall-*.fc.x86_64.rpm |
sudo dnf install ./<file> |
| openSUSE | neowall-*.suse.x86_64.rpm |
sudo zypper install ./<file> |
| Any (universal) | neowall-*-x86_64.AppImage |
chmod +x <file> && ./<file> |
Plain binaries (no package manager)
| File | Build |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
glibc (Arch) |
neowall-linux-x86_64-debian.tar.gz |
glibc (Debian bookworm) |
neowall-linux-x86_64-fedora.tar.gz |
glibc (Fedora) |
neowall-0.5.2-source.tar.gz |
source |
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo install -m755 neowall /usr/local/bin/Arch (AUR, tracks git)
yay -S neowall-gitFrom source
tar -xzf neowall-0.5.2-source.tar.gz
cd neowall-0.5.2
meson setup build --buildtype=release
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ capable GPU
- Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11
Verify downloads against SHA256SUMS.txt.
NeoWall v0.5.1
NeoWall 0.5.1
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- release: bump version to 0.5.1
- reactive: add NVIDIA GPU capture and fused system uniforms (iNvGpu/iNvVram/iNvPower, iThermal, iActivity, iPulse, iCpuMax, absolute mem/net)
- release CI: build openSUSE rpm on Tumbleweed (modern Ruby for fpm) with zypper retry
- release CI: pin fpm 1.14.2 on openSUSE (Leap 15.6 Ruby 2.5 can't parse newer fpm)
- release CI: robustly locate fpm binary on openSUSE Leap
- release CI: fix openSUSE gem PATH for fpm; drop Alpine job (musl GLVND lacks glGetQueryObjectui64v, AppImage covers that niche)
- release CI: add GLESv2/v3 headers for openSUSE, make it non-blocking
- meson: fall back to libpng16 pkgconfig name (openSUSE Leap ships only the versioned .pc)
- release CI: fix Ubuntu deb dist dir, pin openSUSE to Leap 15.6, make Alpine non-blocking with explicit libGL link
- packaging: build native packages for every distro (deb, rpm, pacman, apk, AppImage, musl) in release CI; install desktop file, icon, and systemd user unit
Packages
Pick the native package for your distro — each pulls in the right runtime deps.
| Distro | File | Install |
|---|---|---|
| Arch / Manjaro | neowall-*-x86_64.pkg.tar.zst |
sudo pacman -U <file> |
| Debian / Mint | neowall_*_amd64.deb |
sudo apt install ./<file> |
| Ubuntu 24.04+ | neowall_*-ubuntu24.04_amd64.deb |
sudo apt install ./<file> |
| Fedora / RHEL | neowall-*.fc.x86_64.rpm |
sudo dnf install ./<file> |
| openSUSE | neowall-*.suse.x86_64.rpm |
sudo zypper install ./<file> |
| Any (universal) | neowall-*-x86_64.AppImage |
chmod +x <file> && ./<file> |
Plain binaries (no package manager)
| File | Build |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
glibc (Arch) |
neowall-linux-x86_64-debian.tar.gz |
glibc (Debian bookworm) |
neowall-linux-x86_64-fedora.tar.gz |
glibc (Fedora) |
neowall-0.5.1-source.tar.gz |
source |
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo install -m755 neowall /usr/local/bin/Arch (AUR, tracks git)
yay -S neowall-gitFrom source
tar -xzf neowall-0.5.1-source.tar.gz
cd neowall-0.5.1
meson setup build --buildtype=release
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ capable GPU
- Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11
Verify downloads against SHA256SUMS.txt.
NeoWall v0.5.0
NeoWall 0.5.0
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- chore: bump version to 0.5.0
- Use wp_cursor_shape_manager_v1 so the compositor draws its own themed cursor over the wallpaper (fixes cursor-style mismatch on Hyprland/hyprcursor); keep XCursor path as fallback
- Add GLSL program binary cache (instant shader switching); frame-throttle plumbing in watchdog (unwired: beats against timerfd pacing)
- Optimize render path: real frame timing, per-frame uniform caches, VAO baking, static-shader idle, redundant make-current elimination, Shadertoy-correct noise texture
- tests: add unit tests for EXIF orientation (#48) and shuffle (#47)
- config: add
shuffleoption for randomised cycle order (closes #47) - image: honor JPEG EXIF Orientation tag on decode (fixes #48)
- Change documentation for transition_duration to seconds
- shader/stdlib: drop unprefixed aliases (fbm/hsv2rgb/palette/rot2d)
- docs: add BACKEND_ABI, EVENTLOOP, TODO_INDEX; CI: add gcc -fanalyzer job; reactive: document parec child reaping invariant
- tests: unit test the reactive FFT with synthetic signals
- tests: add libFuzzer harness for multipass GLSL parser
- main: implement
neowall reloadIPC command via SIGHUP - shader: document scope split between render_optimizer (GL state cache) and multipass_optimizer (render planner)
- shader: split parser out of shader_multipass.c into multipass_parse.c
- shader: hoist duplicated error-log buffer into shader_error_log
- ci: make Xvfb smoke test degrade gracefully when RandR ignores --setmonitor
- ci: fix Xvfb smoke test — assert named RandR-1.5 monitor (Xvfb is single-CRTC)
- packaging: add Nix flake; document iChannel binding in README
- shader: inject #line directives so GLSL compile errors map to the user's source line
- tests: add libFuzzer harness for the VIBE config parser (-Dfuzz=true)
- ci: add Xvfb dual-head smoke test guarding multi-monitor detection (#44)
- x11: hotplug output reconcile on RRScreenChangeNotify; extract testable geometry helpers
- x11: per-monitor outputs and windows for multi-monitor support
- Fix X11-only build: gate Wayland-only reconnect handler behind HAVE_WAYLAND_BACKEND
- Add GPU/CPU-temp/disk/swap/load/uptime/process reactive uniforms; upgrade system_deck to a full hardware dashboard
- Add system_deck: a command-deck HUD shader with gauges, scrolling history, per-core meters, clock
- Add interactive "living desktop" shader collection (audio, mouse, system, time reactive)
- Add reactive shader library: live system/audio uniforms, GLSL std-lib, .neowall manifests
- Clean up monitor-reconnect: per-output config, single roundtrip, all outputs
- Fix rendering never restarting after monitor power-off/reconnect
- fix: address clang static-analyzer findings (null-deref, ftell guard, dead store, macro parens)
- fix: replace strncpy idiom with snprintf to clear -O2 -Wstringop-truncation
- docs: link ARCHITECTURE.md and sanitizer test commands from README
- fix: check snprintf truncation in runtime-path fallback, fail closed on overflow
- docs: add ARCHITECTURE.md mapping modules, threading, lifetime, conventions
- refactor: replace fixed MAX_OUTPUTS render arrays with growable nw_vec
- ci: add ASan/UBSan, ThreadSanitizer, static-analysis and format-check jobs
- fix: refcount output_state lifetime to close render-vs-hotplug use-after-free
- chore: add clang-format, clang-tidy, editorconfig matching house style
Packages
Pick the native package for your distro — each pulls in the right runtime deps.
| Distro | File | Install |
|---|---|---|
| Arch / Manjaro | neowall-*-x86_64.pkg.tar.zst |
sudo pacman -U <file> |
| Debian / Mint | neowall_*_amd64.deb |
sudo apt install ./<file> |
| Ubuntu 24.04+ | neowall_*-ubuntu24.04_amd64.deb |
sudo apt install ./<file> |
| Fedora / RHEL | neowall-*.fc.x86_64.rpm |
sudo dnf install ./<file> |
| openSUSE | neowall-*.suse.x86_64.rpm |
sudo zypper install ./<file> |
| Any (universal) | neowall-*-x86_64.AppImage |
chmod +x <file> && ./<file> |
Plain binaries (no package manager)
| File | Build |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
glibc (Arch) |
neowall-linux-x86_64-debian.tar.gz |
glibc (Debian bookworm) |
neowall-linux-x86_64-fedora.tar.gz |
glibc (Fedora) |
neowall-0.5.0-source.tar.gz |
source |
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo install -m755 neowall /usr/local/bin/Arch (AUR, tracks git)
yay -S neowall-gitFrom source
tar -xzf neowall-0.5.0-source.tar.gz
cd neowall-0.5.0
meson setup build --buildtype=release
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ capable GPU
- Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11
Verify downloads against SHA256SUMS.txt.
NeoWall v0.4.7
NeoWall 0.4.7
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- chore: bump version to 0.4.7
- feat: pause-shader / resume-shader to freeze the shader animation (#39)
- config: add mouse_interaction (global, default true) to disable pointer binding
- docs: remove false hot-reload claims; config requires daemon restart
- config: warn when pause_coverage_threshold is set outside Hyprland (no-op elsewhere)
- x11_occlusion: fix multi-monitor coverage, geometric realloc, fresh check_counter on init
- frame_watchdog: drop entry on output destroy to avoid dangling output_state*
- config: add pause_coverage_threshold (default 0.8) for Hyprland tiled-coverage occlusion
- hyprland_coverage: respect reserved zones, finer grid, snapshot TTL
- Fix concurrency, signal-safety, and resource-management issues across daemon
- docs: rewrite README in a less salesy voice
- occlusion: wire frame-callback watchdog into KDE, GNOME, and fallback backends
- occlusion: detect tiled-mosaic coverage via Hyprland IPC
- docs: clarify pause_on_fullscreen scope and tiled-mosaic limitation
- feat(occlusion): combine frame-callback watchdog with toplevel state
- feat(occlusion): pause when visible wallpaper fraction drops below 20%
- refactor: fold occlusion detection into the compositor abstraction
- fix: respect XCURSOR_THEME / XCURSOR_SIZE on wlroots pointer enter
- fix: set default cursor when pointer enters on wlroots compositors (#37)
- docs: add pause_on_fullscreen to README and config guide
Downloads
| File | Description |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
Binary for Arch Linux |
neowall-linux-x86_64-debian.tar.gz |
Binary for Debian/Ubuntu |
neowall-linux-x86_64-fedora.tar.gz |
Binary for Fedora |
neowall-0.4.7-source.tar.gz |
Source code |
Installation
From Binary
# Download the appropriate binary for your distro
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo mv neowall /usr/local/bin/
# Copy shaders (optional - download source for shaders)
mkdir -p ~/.config/neowall/shadersArch Linux (AUR)
yay -S neowall-gitFrom Source
tar -xzf neowall-0.4.7-source.tar.gz
cd neowall-0.4.7
meson setup build
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ compatible GPU
- Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11
NeoWall v0.4.6
NeoWall 0.4.6
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- fix: neowall next now checks all monitors for cycle_total
- Optimize fractal_land shader: tetrahedron normals, precomputed rotation, reduced ray steps
Downloads
| File | Description |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
Binary for Arch Linux |
neowall-linux-x86_64-debian.tar.gz |
Binary for Debian/Ubuntu |
neowall-linux-x86_64-fedora.tar.gz |
Binary for Fedora |
neowall-0.4.6-source.tar.gz |
Source code |
Installation
From Binary
# Download the appropriate binary for your distro
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo mv neowall /usr/local/bin/
# Copy shaders (optional - download source for shaders)
mkdir -p ~/.config/neowall/shadersArch Linux (AUR)
yay -S neowall-gitFrom Source
tar -xzf neowall-0.4.6-source.tar.gz
cd neowall-0.4.6
meson setup build
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ compatible GPU
- Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11
NeoWall v0.4.5
NeoWall 0.4.5
GPU-accelerated live shader wallpapers for Wayland & X11.
Changes
- Restore beach_shell.glsl quality: increase iterations, improve shadows and normals
- Optimize beach_shell.glsl: cache trig/sqrt, inline functions, reduce redundant computations
- perf(shaders): aggressive optimization for windows.glsl (<30% GPU usage)
- perf(shaders): optimize windows.glsl for better GPU performance
- Add pre-built binaries to README install section
- Add binary builds to release workflow
- Bump version to 0.4.5
- Fix OpenGL 3.3 Core compatibility for transitions
- Get rid of shitty readme (#34)
- Get rid of shitty readme (#33)
- Add train shake and optimize wires
- Add multipass optimizer with smart per-buffer resolution, half-rate updates, and synchronized optimization modes
- Add pass type comment markers for multipass detection
- Fix multipass shader format - use comment markers instead of ifdef guards
- Add optimized train journey shader with ~40% performance improvement
- Industry-grade adaptive scaling: percentile targeting, spike filtering, thermal throttling, emergency mode
- Optimize adaptive resolution: GPU timing, EMA, predictive scaling, use config shader_fps
- Switch to desktop OpenGL 3.3 for Shadertoy compatibility
- Bump version to 0.4.5
- Enhance shader lib (#32)
Downloads
| File | Description |
|---|---|
neowall-linux-x86_64-arch.tar.gz |
Binary for Arch Linux |
neowall-linux-x86_64-debian.tar.gz |
Binary for Debian/Ubuntu |
neowall-linux-x86_64-fedora.tar.gz |
Binary for Fedora |
neowall-0.4.5-source.tar.gz |
Source code |
Installation
From Binary
# Download the appropriate binary for your distro
tar -xzf neowall-linux-x86_64-*.tar.gz
sudo mv neowall /usr/local/bin/
# Copy shaders (optional - download source for shaders)
mkdir -p ~/.config/neowall/shadersArch Linux (AUR)
yay -S neowall-gitFrom Source
tar -xzf neowall-0.4.5-source.tar.gz
cd neowall-0.4.5
meson setup build
ninja -C build
sudo ninja -C build installRequirements
- OpenGL 3.3+ compatible GPU
- Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11
Release v0.4.4
NeoWall 0.4.4
Changes
- Fix release workflow to use meson instead of make (a382c50)
- Release v0.4.4 (a877518)
- Document KDE desktop icons limitation (83b0eca)
- Add GLEditor section to README (c3ca0ee)
- Fix shader rendering: match gleditor, restore GL state after FPS overlay (672361e)
- Improve vec3 texture coordinate detection for environment mapping shaders (8831f07)
- Fix cycle_list path to match state file location (9e09932)
- Remove unverified performance claims (c4d921d)
- Fix comparison table with real competitors (e20284b)
- Revamp README with modern design and better documentation (947dbc8)
- Add 'list' command to show all wallpapers with indices (1d2a23c)
- Add 'set ' command to jump to specific wallpaper in cycle (0c170f0)
- Remove Fedora CI job (5b4c189)
- Migrate build system to Meson and fix KDE desktop integration (#29) (2c836ed)
- docs: simplify video layout with autoplay for better presentation (63c7fbe)
- docs: use video tags for consistent sizing (e65ac1d)
- docs: fix video rendering by using raw URLs (97825de)
- docs: display demo videos side-by-side in compact layout (5da9a56)
- docs: swap videos - mouse interaction at top, transitions in features (3c95287)
- docs: relocate mouse interaction demo to Features section (e811778)
- docs: display videos at full width for better visibility (cda6b87)
- docs: increase logo size and fix video display format (1e050c2)
- docs: increase logo size for better visibility (b163fd5)
- docs: enhance header with logo and demo videos (b1a353c)
- refactor: modernize README with professional documentation style (1601edd)
- docs: improve README layout and media display (5e6d4a7)
- docs: improve README presentation and professionalism (83df259)
Installation
Arch Linux (AUR)
yay -S neowall-gitFrom source
tar -xzf neowall-0.4.4.tar.gz
cd neowall-0.4.4
meson setup build
ninja -C build
sudo ninja -C build installRelease v0.4.3
Neowall 0.4.3
Changes
- Bump version to 0.4.3 (10565a8)
- Fix shader_fps not working for FPS <= 1 (timerfd tv_nsec overflow) (#28) (318215a)
- fix: add explicit WAYLAND_BACKEND=no and X11_BACKEND=no options for CI (04296c6)
- ci: add Debian X11-only build, fix Wayland backend detection (9d30f44)
- fix: make Wayland protocols and deps conditional for X11-only builds (2b9c72a)
- docs: add mouse interaction video and streamline README (cadc83e)
- Fix X11 backend: call init_outputs to create X11 screen output (2749f9b)
- Fix X11 backend: require both libX11 and libXrandr (43f2555)
- Add Arch-based CI for Wayland-only and X11-only builds (73363a3)
Installation
Arch Linux (AUR)
yay -S neowall-gitFrom source
tar -xzf neowall-0.4.3.tar.gz
cd neowall-0.4.3
make
sudo make installRelease v0.4.2
Neowall 0.4.2
Changes
- Merge refactor/take-compositor-out: Full platform abstraction for compositor layer (39998c8)
- Bump version to 0.4.2, update copyright to 2025, clean up code (2003635)
- Make Wayland and X11 backends conditionally compiled based on available libs (f4736f9)
- Add resize_egl_window and get_native_window backend ops for full platform abstraction (d5dbb0e)
- Refactor: Treat all backends equally, add sync() op, fix EGL platform include (bcdc836)
- Refactor: Remove Wayland types from core neowall_state, isolate in wayland_t (a8bab09)
- Refactor/take compositor out (#27) (234851f)
- refactor: complete compositor-agnostic architecture with working output detection and rendering (1d83087)
- refactor: unify compositor initialization and make EGL platform-agnostic (f08e961)
- refactor: make event loop and core state compositor-agnostic with backend abstraction (9b3b993)
Installation
Arch Linux (AUR)
yay -S neowall-gitFrom source
tar -xzf neowall-0.4.2.tar.gz
cd neowall-0.4.2
make
sudo make installRelease v0.4.1
Neowall 0.4.1
Changes
- chore: bump version to 0.4.1 (83c5c92)
- Merge branch 'fps_fix' (263282e)
- fix: respect frame timer in vsync-off mode for accurate shader FPS (e4ad7a4)
- feat: add mouse event support for X11/Wayland with shader iMouse (#24) (77b1555)
- feat: add mouse event support for X11/Wayland with shader iMouse integration (a4cd8ea)
- add iMouse support (fadd5eb)
- Make logo full width in README (20c6d75)
Installation
Arch Linux (AUR)
yay -S neowall-gitFrom source
tar -xzf neowall-0.4.1.tar.gz
cd neowall-0.4.1
make
sudo make install