Skip to content

Releases: 1ay1/neowall

NeoWall v0.5.2

Choose a tag to compare

@1ay1 1ay1 released this 14 Jul 21:19

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-git

From 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 install

Requirements

  • OpenGL 3.3+ capable GPU
  • Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11

Verify downloads against SHA256SUMS.txt.

NeoWall v0.5.1

Choose a tag to compare

@github-actions github-actions released this 03 Jul 06:00

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-git

From 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 install

Requirements

  • OpenGL 3.3+ capable GPU
  • Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11

Verify downloads against SHA256SUMS.txt.

NeoWall v0.5.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 22:01

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 shuffle option 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 reload IPC 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-git

From 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 install

Requirements

  • OpenGL 3.3+ capable GPU
  • Wayland compositor with layer-shell (Hyprland, Sway, River, …) or X11

Verify downloads against SHA256SUMS.txt.

NeoWall v0.4.7

Choose a tag to compare

@github-actions github-actions released this 30 May 12:30

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/shaders

Arch Linux (AUR)

yay -S neowall-git

From 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 install

Requirements

  • OpenGL 3.3+ compatible GPU
  • Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11

NeoWall v0.4.6

Choose a tag to compare

@github-actions github-actions released this 25 Jan 17:49

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/shaders

Arch Linux (AUR)

yay -S neowall-git

From 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 install

Requirements

  • OpenGL 3.3+ compatible GPU
  • Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11

NeoWall v0.4.5

Choose a tag to compare

@github-actions github-actions released this 14 Jan 10:38

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/shaders

Arch Linux (AUR)

yay -S neowall-git

From 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 install

Requirements

  • OpenGL 3.3+ compatible GPU
  • Wayland compositor with layer-shell support (Hyprland, Sway, etc.) OR X11

Release v0.4.4

Choose a tag to compare

@github-actions github-actions released this 16 Dec 15:39

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-git

From source

tar -xzf neowall-0.4.4.tar.gz
cd neowall-0.4.4
meson setup build
ninja -C build
sudo ninja -C build install

Release v0.4.3

Choose a tag to compare

@github-actions github-actions released this 11 Dec 09:59

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-git

From source

tar -xzf neowall-0.4.3.tar.gz
cd neowall-0.4.3
make
sudo make install

Release v0.4.2

Choose a tag to compare

@github-actions github-actions released this 06 Dec 16:12

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-git

From source

tar -xzf neowall-0.4.2.tar.gz
cd neowall-0.4.2
make
sudo make install

Release v0.4.1

Choose a tag to compare

@github-actions github-actions released this 16 Nov 18:01

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-git

From source

tar -xzf neowall-0.4.1.tar.gz
cd neowall-0.4.1
make
sudo make install