A native Linux desktop app for inspecting and managing PipeWire and WirePlumber
audio-quality settings — the graph sample rate and buffer size, per-device bit
depth and rate rules, and the stream resampler quality. Built with
libcosmic, so it follows the COSMIC
theme and accent and talks to PipeWire directly.
- Status — live view of the graph clock and every device, including the actual hardware rate/format read from ALSA when a stream is open.
- Graph clock — set the default, allowed, and forced rate and the buffer size. Apply live to the running graph, or persist across reboots.
- Devices — per-device WirePlumber rules forcing bit depth, rate, and allowed rates.
- Resampler — the stream
resample.quality(0–14). - Diagnostics — validation warnings, conflicting foreign config, one-click service restart, and the backup list.
Persistent changes are written as drop-in config fragments; Audioclock only
touches files it owns and backs up anything it replaces to
~/.local/state/audioclock/backups/. Foreign config is reported, never edited.
Every release ships prebuilt x86_64 and aarch64 packages:
| Distro | Package |
|---|---|
| Arch | AUR: audioclock (source) or audioclock-bin (prebuilt) |
| Debian / Ubuntu | the .deb |
| Fedora / RHEL | the .rpm |
| Any distro | the .AppImage |
Runtime: PipeWire, WirePlumber 0.5+, and user systemd.
cargo run -p audioclock-gui # needs PipeWire + Wayland/xkb headers and clang
cargo run -p audioclock-gui --no-default-features # in-process mock backend, no PipeWire neededThe workspace is two crates: audioclock-core (pure domain model, validation,
fragment generation — fully unit-tested) and audioclock-gui (the libcosmic
app, PipeWire backend, and filesystem/systemd integration).
Packaging and the tagged-release pipeline live in
packaging/.
MIT.