kde-desktop-background-libvisual
v1.2.0What's New in 1.2.0
ProjectM Visualization (type 19)
Adds Milkdrop-compatible GPU preset rendering via libprojectM as the 20th visualization type.
- 4 000+ presets from the Milkdrop / MilkDrop2 ecosystem (
.milk,.prjm) - Renders entirely on the OpenGL render thread via
QQuickFramebufferObject— no CPU overhead - Full Wayland/EGL support: works out of the box under KDE Plasma on Wayland (the default since KDE Plasma 6)
- Graceful fallback on Vulkan backends: shows an informative message with the
QSG_RHI_BACKEND=openglworkaround - Config dialog controls: preset path, individual preset selector, shuffle mode, display duration
Config Dialog Improvements
- Preset path browser, shuffle toggle, and duration spinner for type 19
- Animated mini-preview for ProjectM in the per-type preview widget
- Version label updated to 1.2.0
Audio Backend (since 1.1.6)
- Replaced blocking
pa_simplewith fully asyncpa_threaded_mainloop+pa_streampipeline - Native
pa_context_get_source_info_list()device enumeration — no morepactlsubprocess - Monitor sources filtered via
monitor_of_sinkfield; only real capture devices shown - Works transparently under PipeWire via
pipewire-pulse(no config changes needed)
Installation
Debian / Ubuntu / KDE Neon
Download kde-desktop-background-libvisual_1.2.0-1_amd64.deb and install:
sudo dpkg -i kde-desktop-background-libvisual_1.2.0-1_amd64.deb
sudo apt-get install -f # resolve any missing dependencies
Required dependencies (pulled in automatically):
libpulse0,libfftw3-double3- Qt 6 / KDE Plasma 6 runtime (already present on KDE systems)
Optional — ProjectM presets (type 19):
sudo apt install libprojectm4 projectm-data
After installation, right-click the desktop → Configure Desktop and Wallpaper → select LibVisual Audio Visualizer.
Visualization Types
| # | Name | Description |
|---|---|---|
| 0 | Spectrum Analyzer | 64-bar FFT spectrum |
| 1 | Waveform | Full-screen dual sine wave |
| 2 | Lissajous | XY oscilloscope figures |
| 3 | Circular Burst | Concentric circles pulsing with frequency bands |
| 4 | Circular Spectrum | 64 radial bars in a circle |
| 5 | Plasma | Animated colored blobs |
| 6 | Starfield | Stars flying outward, speed scales with audio |
| 7 | Fireworks | Particle bursts on bass beats |
| 8 | Matrix Rain | Falling green characters |
| 9 | DNA Helix | Two intertwined sine strands |
| 10 | Particle Storm | 150 particles in audio-reactive orbits |
| 11 | Ripple Effect | Expanding concentric rings |
| 12 | Tunnel Vision | Rotating nested rectangles |
| 13 | Spiral Galaxy | 200 dots in three rotating spiral arms |
| 14 | Lightning | Recursive bolts spawned on peaks |
| 15 | Mandelbrot Zoom | GPU-rendered Mandelbrot set (GLSL shader) |
| 16 | Geometric Dance | Rotating polygons scaling with audio |
| 17 | Audio Bars 3D | FFT bars in perspective projection |
| 18 | Kaleidoscope | 8-segment radially mirrored pattern |
| 19 | ProjectM Visualizer | Milkdrop-compatible GPU presets via libprojectM ✨ |
System Requirements
- KDE Plasma 6.x
- Wayland (recommended) or X11
- PulseAudio or PipeWire (
pipewire-pulse) - GPU with OpenGL 2.0+ (for Mandelbrot and ProjectM types)
- Microphone or audio capture device
Build from Source
git clone https://github.com/VitexSoftware/kde-desktop-background-libvisual.git
cd kde-desktop-background-libvisual
cmake -B build -DCMAKE_INSTALL_PREFIX=~/.local
cmake --build build -j$(nproc)
cmake --install build
Optional ProjectM support is detected automatically if libprojectM development headers are present.