| Crates.io | onionbell |
| lib.rs | onionbell |
| version | 0.1.0 |
| created_at | 2026-01-16 15:54:17.647332+00 |
| updated_at | 2026-01-16 15:54:17.647332+00 |
| description | A bell utility for Hyprland |
| homepage | |
| repository | https://codeberg.org/onion27/onionbell |
| max_upload_size | |
| id | 2048825 |
| size | 64,870 |
A utility to handle xdg-system-bell-v1 in Hyprland.
Create a config file in $XDG_CONFIG_HOME/onionbell/config.toml with content:
sound = "/path/to/your/sound/file"
And try, for example, printf "\a" in kitty. You should hear the sound play. If it doesn't, check the logs.
You can write several rules to use different sound for different windows. For example, a config file like this
sound = "/path/to/sound_file1.wav"
[[rule]]
floating = true
sound = "/path/to/sound_file2.wav"
[[rule]]
class_regex = "^kitty$"
sound = "/path/to/sound_file3.wav"
Will make /path/to/sound_file2.wav to be played on all floating windows that sends a bell event, and /path/to/sound_file3.wav to be played on all non-floating kitty windows that sends a bell event, and /path/to/sound_file1.wav on all other windows that sends a bell event. Notice that rules are executed in order and the first match will be used.
sound keys can be absent. In that case, no sound will be played.
cargo build --release