26695e6e7085bbf0817c408299fcf90dbd6c0842
F6/F7 adjust outgoing voice pitch in 1-semitone steps (-12 to +12). PitchShifter integrates into the capture path at dequeue time so the PortAudio callback is never blocked. Status bar shows current pitch when non-zero. Config reload treats pitch as a safe change.
tuimble
TUI Mumble client with voice support and push-to-talk.
Features
- Terminal-based UI (Textual)
- Voice transmission with Opus codec
- Push-to-talk via Kitty keyboard protocol, evdev, or toggle
- Channel browsing and text chat
- Chat input history (Up/Down arrow navigation)
- Self-deafen toggle
- Volume control (input/output gain)
- Client certificate authentication
- Auto-reconnect on network loss
- Config hot-reload (F5)
Key Bindings
| Key | Action |
|---|---|
Tab |
Cycle focus (chat input / channel tree) |
F1 |
Toggle self-deafen |
F2 |
Cycle output volume |
F3 |
Cycle input volume |
F4 |
Push-to-talk (configurable) |
F5 |
Reload config from disk |
Enter |
Send message / join channel (sidebar) |
Up |
Previous message (input) / previous channel (sidebar) |
Down |
Next message (input) / next channel (sidebar) |
q |
Quit |
Ctrl+C |
Quit |
Quick Start
make setup
make run
Configuration
mkdir -p ~/.config/tuimble
~/.config/tuimble/config.toml:
[server]
host = "mumble.example.com"
port = 64738
username = "myname"
# certfile = "/path/to/cert.pem"
# keyfile = "/path/to/key.pem"
[audio]
# output_gain = 1.0
# input_gain = 1.0
[ptt]
key = "f4"
mode = "hold"
backend = "auto"
Requirements
- Python 3.11+
- libopus
- portaudio (libportaudio2)
- A Mumble server to connect to
Description
Languages
Python
99.6%
Makefile
0.4%