Arch Linux AUR Packaging
Relevant source files
The following files were used as context for generating this wiki page:
Arch Linux support for Kaleidux is primarily facilitated through the Arch User Repository (AUR), specifically via the kaleidux-git package. This packaging method allows users to install the high-performance wallpaper daemon and its controller utility while automatically managing complex system dependencies required for hardware-accelerated rendering and video playback.
The packaging process focuses on compiling the Rust-based workspace, which includes the core daemon and the CLI controller, and installing them into the system path alongside necessary documentation such as man pages. Sources: README.md:61-66, CONTRIBUTING.md:126-128
Build Requirements and Dependencies
Creating or installing the AUR package requires several system-level development headers and libraries. These are categorized into build-time tools (like Rust and CMake) and runtime libraries for Wayland, X11, and GStreamer.
System Dependencies
The following table outlines the packages required from the official Arch Linux repositories to successfully build the AUR package:
| Category | Package Names | Purpose |
|---|---|---|
| Compiler | rust, cargo | Compiling the Rust workspace (Version 1.89+ stable) |
| Video | gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-libav | GStreamer integration for video wallpaper support |
| Display | wayland, libx11 | Backend support for Wayland and X11 environments |
| Graphics | vulkan-devel | WGPU hardware acceleration |
| Build Tools | pkgconf, cmake | Build system and dependency discovery |
Sources: README.md:78-82, CONTRIBUTING.md:46-55
Build and Installation Logic
The AUR package follows the standard Rust build workflow within a PKGBUILD environment. The project is structured as a Cargo workspace, meaning the packaging process handles multiple binaries simultaneously.
Compilation Process
The packaging logic executes a release build to ensure optimal performance and near-zero CPU overhead during transitions.
- Fetch: The source is typically pulled from the GitHub repository.
- Build:
cargo build --releaseis executed at the workspace root. - Output: Two primary binaries are generated in
target/release/.
The diagram above shows the flow from the AUR helper invocation to the final system installation.
Sources: README.md:33-36, Cargo.toml:1-6, CONTRIBUTING.md:88-93
Installation Targets
The package installs the following components to the system:
- Daemon:
kaleidux-daemon- The background service handling WGPU rendering. - Controller:
kldctl- The CLI utility for IPC communication. - Documentation: Man pages located at
man/kaleidux-daemon.1andman/kldctl.1.
Sources: README.md:37-38, PROJECT_STANDARDS.md:246-250, CONTRIBUTING.md:104-106
Versioning and Release Integration
AUR packaging for Kaleidux is tied to the project's Semantic Versioning (2.0.0) and codename scheme. The current series is identified by the codename kneecap.
Version Components
- Workspace Version: Tracked in the root
Cargo.toml. - Codenames: Applied to major version series (e.g.,
0.0.1-kneecap). - Tags: Every stable release is a tagged commit on the
mainbranch, which the AUR package tracks for non-git (stable) variants.
| Component | Format | Example |
|---|---|---|
| Version | major.minor.patch | 0.0.1 |
| Codename | string | kneecap |
| Full String | v{version}-{codename} | v0.0.1-kneecap |
Sources: PROJECT_STANDARDS.md:213-228, Cargo.toml:11
Summary
The Arch Linux AUR packaging (via kaleidux-git) provides a streamlined method to deploy Kaleidux by automating the acquisition of GStreamer plugins, Vulkan drivers, and Wayland headers. By leveraging the cargo build system, the package ensures that both the rendering daemon and the IPC controller are installed with release-mode optimizations, fitting the project's "high-performance" ethos. Sources: README.md:61-66, PROJECT_STANDARDS.md:11-15