Repository navigation
NeoWall 0.7.2
GPU-accelerated live shader wallpapers for Wayland & X11.
Privacy fix — update if you are on 0.5.0 or newer
neowall was opening your microphone. If your desktop warned you that
neowall was using the mic, it was telling the truth. Details below.
What happened
The audio path spawns parec so a wallpaper can react to whatever your
speakers are playing. It was spawning it without a device argument, and
with no device parec records the default source — which on a normal
desktop is your microphone, not the speaker loopback. The comment directly
above the code said "capturing the default monitor", so the intent was always
right and the implementation quietly did the opposite.
It was also doing this whether or not anything needed audio. The capture
thread started with the daemon, so even a static image wallpaper opened a
recording stream.
What did not happen
None of that audio left your machine. The samples land in a stack buffer
that is reduced to a volume level, an FFT spectrum and a downsampled envelope,
then uploaded to a GPU texture to be drawn. Nothing is written to disk, nothing
is logged, and neowall contains no network code at all — no telemetry, no
uploads, no crash reporting. Nothing was recorded or transmitted.
That does not make opening the mic acceptable. It should not have shipped.
The fix
- Capture now runs against
@DEFAULT_MONITOR@, the loopback of your default
output. It can no longer reach an input device. - Capture is opt-in. It only starts if the shader you loaded actually reads
audio — aniAudio*uniform, one of the stdlib helpers (spectrum(),
waveform(),beat(),audioBand()), or aniChannelbound toaudio.
Every other wallpaper spawns noparecat all.
Verify it yourself
Run pactl list source-outputs while neowall is running. On an affected build
there is a parec stream on your input device. Here there is no stream at all
unless your shader uses audio — and when there is, it is attached to your
output monitor, not your mic.
Affects 0.5.0 through 0.7.1, introduced with the reactive shader library.
Fixes #84, reported by @mastermach50.
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.7.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.7.2-source.tar.gz
cd neowall-0.7.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.