Skip to content

Hibiki: Modern Wayland Key Visualizer

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Oct 17:22
· 6 commits to main since this release
v0.2.0
df383ed

Hibiki is a modern, highly customizable keystroke visualizer built in Rust with GTK4 and Layer Shell, designed specifically for Wayland compositors. It gives you a clean, aesthetic overlay for screencasts, presentations, or just for the love of mechanical keyboard sounds.

Highlights in 0.2.0

  • Global hotkeys — control Hibiki from the keyboard on any compositor, with optional XDG Desktop Portal GlobalShortcuts support so the desktop owns the combos and stops forwarding them to the focused app.
  • Sounds as a standalone feature — play keystroke sounds with the visualizer hidden, fully independent from Keystroke/Bubble mode.
  • Unify Words — fold consecutive characters into a single bubble (c, l, e, a, r → clear) to cut down on clutter.
  • Configurable colors — theme the background and text of keys and bubbles, with full GTK-theme fallback.
  • Daemon mode & richer CLI — toggles, pause, settings and launch, forwarded to a running instance over D-Bus.
  • Custom Super-key icon — the built-in logo, an icon-theme symbolic/colored icon, or your own transparent PNG/WebP.
  • Umbriel support and ongoing Hyprland/Sway work.

See the full changelog.

Key Features

  • Wayland Native: Built with GTK4 and Layer Shell, so it works natively on modern compositors like Niri, Hyprland, and Sway — no X11 workarounds.
  • Two Visual Modes:
    • Keystroke: a classic, precise visualizer that shows every key press.
    • Bubble: a sleek, minimal aesthetic mode inspired by devaslife.
  • Mechanical Audio Engine: satisfying typing sounds with built-in support for Mechvibes sound packs and zero-latency playback on a dedicated thread.
  • Deep Customization: granular typography (font family, weight, size), theming that respects your GTK theme, custom colors, and draggable overlays.

Supported Compositors

Hibiki automatically detects your environment:

Compositor Support Level Notes
Niri 🟢 Tested & Working Fully supported layout detection and event handling.
Umbriel 🟡 Experimental IPC-based layout detection and event handling.
Hyprland 🟡 Experimental Implemented but needs community testing.
Sway 🟡 Experimental Implemented but needs community testing.
River/DWL 🔴 Basic/None Layout detection may fail; "Basic support" is minimal.

Note: We especially need testers for Hyprland and Sway — please report issues!

Installation

Install script (prebuilt binary, recommended):

curl -fsSL https://raw.githubusercontent.com/linuxmobile/hibiki/main/install.sh | bash

AppImage (self-contained — no system GTK or gtk4-layer-shell needed):

curl -fsSL https://raw.githubusercontent.com/linuxmobile/hibiki/main/install.sh | bash -s -- --appimage

Or download hibiki-0.2.0-<arch>.AppImage from the assets below and chmod +x it.

Arch Linux:

cd packaging/arch
makepkg -si          # hibiki (from source) or hibiki-bin (prebuilt)

Cargo:

cargo install --git https://github.com/linuxmobile/hibiki

Nix:

nix run github:linuxmobile/hibiki

After installing, add your user to the input group so Hibiki can read the keyboard devices (then log out and back in):

sudo usermod -aG input "$USER"

Debian / Ubuntu: the prebuilt binary needs a system gtk4-layer-shell, which is only packaged on Ubuntu 25.10+ and Debian 13+. On older releases (Ubuntu 24.04, Debian 12) use the AppImage above.

> This is an early release. We're actively looking for feedback, especially from Hyprland and Sway users!