Kaleidux
Kaleidux is a high-performance, dynamic wallpaper daemon for Linux, supporting both Wayland (via Layer-Shell) and X11. It transforms your desktop with smooth, hardware-accelerated transitions between images and videos.
Install / Use
/learn @Mjoyufull/KaleiduxREADME

<i>(dynamic desktop kaleidoscope)</i>
<br><br>
<br> High-performance, hardware-accelerated wallpaper daemon for Linux.<br> Supports Wayland & X11 with 50+ smooth GLSL transitions. </div>Table of Contents
More Info: Detailed Usage & Advanced Config
Quickstart
<img width="1920" height="1080" alt="Screenshot_20260118-203253" src="https://github.com/user-attachments/assets/2487daf1-5dbc-4a57-a7fe-d5d8f7148a77" />Get up and running in 30 seconds:
# Install with Nix (recommended)
nix run github:Mjoyufull/Kaleidux
# Or build from source
git clone https://github.com/Mjoyufull/Kaleidux && cd Kaleidux
cargo build --release
sudo cp target/release/kaleidux-daemon /usr/local/bin/
sudo cp target/release/kldctl /usr/local/bin/
# Start the daemon
kaleidux-daemon &
# Skip to next wallpaper
kldctl next
Features
- Video Support: Seamlessly loop videos as wallpapers using GStreamer.
- Image Support: High-quality image rendering and transitions.
- Hardware Accelerated: Powered by
WGPUfor near-zero CPU overhead during transitions. - 50+ Transitions: Huge library of GLSL transitions (fade, cube, doom, wipe, ripple, etc.).
- Multi-Monitor: Independent queue management for each output.
- Monitor Behaviors:
Independent,Synchronized, orGroupedmonitor support. - Rhai Scripting: Automate your wallpaper logic with Rust-like scripts.
- IPC Control: Control the daemon via
kldctl(next, prev, pause, status, etc.).
Installation
Option 1: Aur (Recommended)
- Installing from the Arch User Repository
$ yay -S kaleidux-git
# or
$ paru -S kaleidux-git
Option 2: Nix Flake
-
Build and run with Nix flakes:
nix run github:Mjoyufull/Kaleidux -
Add to your
flake.nixinputs:{ inputs.kaleidux.url = "github:Mjoyufull/Kaleidux"; }
Option 3: Build from Source
Build Requirements:
- Rust 1.89+ stable
- GStreamer 1.20+ with dev plugins
- Wayland and/or X11 development headers
Arch Linux Setup:
sudo pacman -S gstreamer gst-plugins-base gst-plugins-good \
gst-plugins-bad gst-libav wayland libx11 \
vulkan-devel pkgconf cmake
Build:
git clone https://github.com/Mjoyufull/Kaleidux && cd Kaleidux
cargo build --release
Usage Breakdown
Daemon (kaleidux-daemon)
The core background service handling rendering and display interop.
Usage: kaleidux-daemon [OPTIONS]
Options:
--demo Run in demo mode (rotating built-in shaders)
--log <PATH> Specify log file path
-h, --help Show help
Controller (kldctl)
Swiss Army knife for interacting with the running daemon.
kldctl
├── next [n] Skip to the next wallpaper
├── prev [p] Go back to the previous wallpaper
├── query [q] List connected outputs and current state
├── love <PATH> Increase selection frequency for a file
├── unlove <PATH> Reset frequency for a file
├── lovelist [ll] List all "loved" wallpapers
├── pause Pause video playback
├── resume Resume video playback
├── reload Reload configuration from disk
├── kill Stop the daemon gracefully
├── playlist Manage content playlists
├── blacklist Manage excluded files
└── history Show recently played wallpapers
Quick Usage Examples
# Love the current wallpaper on a specific monitor
kldctl love ~/wallpapers/nature.jpg
# List status of all monitors
kldctl query
# Sync all monitors to the next wallpaper
kldctl next --all
Configuration
Default location: ~/.config/kaleidux/config.toml
[global]
monitor-behavior = "independent"
sorting = "loveit"
video-ratio = 50
[any]
transition = { type = "cube", duration = 1000 }
See USAGE.MD for full configuration reference.
Troubleshooting
- Long Startup: WGPU may wait for driver initialization on Wayland (~15s).
- High CPU: Video frames currently use a CPU-RGBA roundtrip. Zero-copy is planned.
- Shader Errors: Ensure your GPU supports Vulkan or GLSL 450.
Contributing
See CONTRIBUTING.md and PROJECT_STANDARDS.md for guidelines.
Credits
License
Kaleidux is licensed under the AGPL-3.0 License.
Related Skills
himalaya
353.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
353.1kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
coding-agent
353.1kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
tavily
353.1kTavily web search, content extraction, and research tools.
