Repository navigation
herdr-sound-switch-plugin — switch Herdr's notification sounds to chiptune packs (mario, zelda, sonic, tetris, pacman, ff) #4995
hhstore
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
herdr-sound — switch Herdr's notification sounds to chiptune packs (mario, zelda, sonic, tetris, pacman, ff)
Hi all — I made a small CLI that swaps Herdr's notification sounds for game-style chiptune packs, and thought I'd share it here.
Why
Herdr's built-in sounds are fine, but I run several agents in background workspaces all day and wanted to tell "finished" from "needs me" without looking at the screen. Herdr already supports custom mp3s natively via
[ui.sound], but jugglingdone_path/request_pathby hand gets old fast, especially if you want to try a few different sounds.So this is deliberately not a plugin. No event hooks, no background process, no sound played by a third party that can double up with Herdr's own. It just does the boring plumbing on top of the feature Herdr already has:
ui.sound.done_path/ui.sound.request_pathat them,herdr server reload-configso it takes effect without a restart.Because it's plain config, there's nothing running in the background and nothing to uninstall beyond
hsp restore.What you get
Six packs, each with two distinct sounds — one for
done, one forblocked:mariozeldasonictetrispacmanffEvery pack is original audio, synthesized from square waves by a generator script in the repo — the notes and rhythms are original compositions in a genre style, and no samples from any game are included. That keeps the whole package freely redistributable (Apache-2.0).
Other bits:
%APPDATA%\herdron Windows and$HERDR_CONFIG_PATHas an override.tomlkit, so your comments and formatting survive.hsp restorereturns you to Herdr defaults and only deletes the files it installed itself.hsp doctor— a one-shot health check: finds the herdr binary, validates the config, and verifies the active pack's files are actually there. Handy right after installing, and it warns you in advance if you're on Linux with no supported audio player.Install
Requires Python 3.10+ and Herdr 0.9.3+.
pip install herdr-soundworks too, or straight from git for unreleased changes:Installs both
herdr-soundand the short aliashsp.On Linux, Herdr plays mp3s through whichever of
paplay/pw-play/ffplay/mpg123/mpvit finds first — so if you've never heard a Herdr sound on Linux, that's usually the missing piece (apt install pulseaudio-utilsorpipewire-audio).Use
That's it — no restart needed.
Repo
https://github.com/ezstack-dev/herdr-sound-plugin — Apache-2.0, on PyPI as
herdr-sound. English and 中文 READMEs, and notes on the platform/audio-player details.Two things worth knowing
Both are Herdr behaviours rather than limitations of this tool, but they surprised me enough to be worth stating up front:
idle / working / blocked / done / unknown. An agent that errors out usually still finishes asdone, so it gets the finish sound. I map the "something's wrong" sound ontoblockedsince that's the closest slot available — but if a distinctfailedstate ever landed, this would be the natural place to put it.Feedback, pack ideas (or a better-sounding
blockedfor any pack) welcome — the note tables are a single readable Python dict, so adding a pack is more or less transcribing a few notes.All reactions