A modern, Wayland-native soundboard for Linux.
Play meme sounds, sound effects, and audio clips in Discord, games, and voice chat — with a polished UI and global hotkeys that work on Wayland.
Linux has lacked a soundboard that feels as polished and easy to use as VoiceMod on Windows. Existing options either don't support Wayland, have dated UIs, or require complex audio routing setup.
HonkHonk is built from the ground up for the modern Linux desktop:
- Pure Rust — single binary, single
cargo build, no Node.js/WebKitGTK - Wayland-native — no X11 fallbacks or XWayland hacks
- PipeWire audio — persistent virtual mic, zero-glitch playback
- Global hotkeys — via xdg-desktop-portal GlobalShortcuts (works on KDE, GNOME, Hyprland)
- Polished UI — Iced GUI with custom theming, GPU-rendered
- Multi-DE support — KDE Plasma 6, GNOME 45+, Hyprland, and more
- Distro-friendly — packages for Flatpak, AUR, DEB, RPM, Nix, AppImage
| Component | Technology |
|---|---|
| GUI | Iced (Rust, Elm architecture, wgpu) |
| Audio | pipewire-rs |
| Shortcuts | ashpd (xdg-desktop-portal) |
| System Tray | tray-icon (StatusNotifierItem) |
| Audio Decode | symphonia |
Phase 1 complete. The core soundboard loop is working:
| Feature | Status |
|---|---|
| Iced GUI — sound grid, search, categories, volume | ✅ Shipped |
| PipeWire virtual mic (persistent sink + mic passthrough) | ✅ Shipped |
| Play sound → virtual mic + local headset | ✅ Shipped |
| Stop / volume / now-playing bar | ✅ Shipped |
| System tray with quit | ✅ Shipped |
| Settings panel (Audio, Library, Hotkeys, Appearance, About) | ✅ Shipped |
| Theme persistence (Light / Dark / System) | ✅ Shipped |
| Grid density (Compact / Regular / Comfy) | ✅ Shipped |
| Mic passthrough toggle + level slider | ✅ Shipped |
| GPU renderer (wgpu default) / software fallback (tiny-skia) | ✅ Shipped |
| XDG global shortcuts (20 fixed slots) | ✅ Shipped |
| Monitor output device selection | ✅ Shipped |
| In-app shortcut assignment with conflict feedback | ✅ Shipped |
| Persistent shortcut assignments across restarts | ✅ Shipped |
| System-persistent virtual mic (survives app restart/reboot) | 🔜 Planned (#49) |
See ARCHITECTURE.md for the full design and roadmap.
yay -S honkhonk # source build (recommended) — or: paru -S honkhonkhonkhonk is the recommended package: an Arch-native build compiled from the
tagged source release, with no foreign-soname workarounds.
Alternatives:
yay -S honkhonk-bin # pre-built binary re-extracted from the GitHub .deb (Debian base)
yay -S honkhonk-git # bleeding-edge, tracks main (planned)See packaging/aur/README.md for maintainer notes and
the per-dependency justification.
# Install dependencies (Arch / Manjaro)
sudo pacman -S rust pkg-config pipewire wayland base-devel
# Build and run
cargo run
# Release build
cargo build --releaseSee CLAUDE.md for build instructions for other distros.
HonkHonk builds on ideas and lessons learned from the Linux audio community. We're grateful to these projects for paving the way:
- Soundux — pioneered the Linux soundboard space with PipeWire support and a web-based UI
- PWSP — demonstrated the Rust + PipeWire soundboard architecture
- venmic — excellent PipeWire virtual device patterns
- Pipeweaver — modern Rust + web UI for PipeWire routing
- obs-wayland-hotkeys — proved GlobalShortcuts portal works on KDE6
- Cosmic DE — large-scale Iced application reference
HonkHonk's icons are generated from two SVG sources via a small
make-driven pipeline. The current art is a placeholder geometric
"HH" mark — real Krita-designed artwork lands in a follow-up PR.
See assets/icons/README.md for:
- The swap-real-art runbook
resvg+ ImageMagick install hints (Arch / Fedora / Ubuntu)- Why the symbolic SVG must use
fill="currentColor"
CI enforces icon freshness via .github/workflows/icons.yml: every
push that touches assets/icons/ regenerates outputs and fails if
the committed PNGs/ICO/SVGs drift from the sources.