F6/F7 keybindings, audio.pitch config option, voice pitch section in USAGE.md. Updated profiling notes to reflect per-thread coverage.
77 lines
1.5 KiB
Markdown
77 lines
1.5 KiB
Markdown
# 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)
|
|
- Voice pitch shifting (deeper/higher)
|
|
- 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 |
|
|
| `F6` | Pitch down (1 semitone) |
|
|
| `F7` | Pitch up (1 semitone) |
|
|
| `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
|
|
|
|
```sh
|
|
make setup
|
|
make run
|
|
```
|
|
|
|
## Configuration
|
|
|
|
```sh
|
|
mkdir -p ~/.config/tuimble
|
|
```
|
|
|
|
`~/.config/tuimble/config.toml`:
|
|
|
|
```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
|
|
# pitch = 0 # semitones, -12 to +12
|
|
|
|
[ptt]
|
|
key = "f4"
|
|
mode = "hold"
|
|
backend = "auto"
|
|
```
|
|
|
|
## Requirements
|
|
|
|
- Python 3.11+
|
|
- libopus
|
|
- portaudio (libportaudio2)
|
|
- A Mumble server to connect to
|