Push-to-talk transcription daemon for Wayland (Sway, Hyprland, niri, COSMIC) using Moonshine.
curl -fsSL https://raw.githubusercontent.com/hiasinho/hammertalk/master/install-remote.sh | shThis installs Rust (if needed), builds from source, downloads the model, and sets up the systemd service.
yay -S hammertalk-bin # pre-built binary
yay -S hammertalk-git # build from sourceAfter installing, download the model:
/usr/share/hammertalk/download-model.shgit clone https://github.com/hiasinho/hammertalk
cd hammertalk
./download-model.sh # Download model (~106MB)
./install.sh # Build and installRe-run the quick install script to update to the latest version:
curl -fsSL https://raw.githubusercontent.com/hiasinho/hammertalk/master/install-remote.sh | shsystemctl --user start hammertalk
systemctl --user enable hammertalk # auto-start on login~/.local/bin/hammertalkhammertalk-ctl start # begin recording
hammertalk-ctl stop # stop and transcribe
hammertalk-ctl status # check if runningSway (~/.config/sway/config):
bindsym --no-repeat $mod+t exec ~/.local/bin/hammertalk-ctl start
bindsym --release $mod+t exec ~/.local/bin/hammertalk-ctl stop
Hyprland (~/.config/hypr/hyprland.conf):
bind = $mainMod, t, exec, ~/.local/bin/hammertalk-ctl start
bindrt = $mainMod, t, exec, ~/.local/bin/hammertalk-ctl stop
niri (~/.config/niri/config.kdl):
binds {
Mod+T { spawn "sh" "-c" "~/.local/bin/hammertalk-ctl start"; }
Mod+T release { spawn "sh" "-c" "~/.local/bin/hammertalk-ctl stop"; }
}COSMIC: Use Settings → Keyboard → Shortcuts to add custom bindings for ~/.local/bin/hammertalk-ctl start (key press) and ~/.local/bin/hammertalk-ctl stop (key release). This one's for you, Marek. 😉
Hold the key, speak, release. Text appears at cursor.
- ydotool (and ydotoold running)
- PipeWire or PulseAudio
journalctl --user -u hammertalk -fcargo build --releasecargo test # run tests
./check.sh # run all checks (format, clippy, tests, audit)