105 lines
2.8 KiB
Markdown
105 lines
2.8 KiB
Markdown
# Usage
|
|
|
|
## Running
|
|
|
|
```sh
|
|
tuimble # uses ~/.config/tuimble/config.toml
|
|
tuimble --host mumble.example.com --user myname
|
|
```
|
|
|
|
## 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 |
|
|
|
|
## Push-to-Talk Modes
|
|
|
|
- **toggle** — press to start, press again to stop (default)
|
|
- **hold** — hold key to transmit, release to stop (requires evdev)
|
|
|
|
## Profiling
|
|
|
|
```sh
|
|
tuimble --cprofile # saves to ~/.config/tuimble/profile.prof
|
|
tuimble --cprofile /tmp/tuimble.prof # saves to custom path
|
|
```
|
|
|
|
Profile data is dumped every 30 seconds and on exit, so snapshots
|
|
are available even after a crash or `kill`. Output is standard `.prof`
|
|
format:
|
|
|
|
```sh
|
|
python3 -m pstats /tmp/tuimble.prof # interactive explorer
|
|
# or install snakeviz for a browser-based flamegraph:
|
|
# pip install snakeviz && snakeviz /tmp/tuimble.prof
|
|
```
|
|
|
|
Note: cProfile captures the main thread only. Background workers
|
|
started with `@work(thread=True)` are not included.
|
|
|
|
## Volume Control
|
|
|
|
`F2` and `F3` cycle through volume steps: 0%, 25%, 50%, 75%, 100%,
|
|
125%, 150%, 200%, then back to 0%. Volume is shown in the status bar
|
|
as block indicators.
|
|
|
|
```toml
|
|
[audio]
|
|
output_gain = 0.75 # 0.0 to 2.0 (default 1.0)
|
|
input_gain = 1.5 # 0.0 to 2.0 (default 1.0)
|
|
```
|
|
|
|
## Client Certificates
|
|
|
|
For servers requiring client certificate authentication:
|
|
|
|
```toml
|
|
[server]
|
|
certfile = "/path/to/client-cert.pem"
|
|
keyfile = "/path/to/client-key.pem"
|
|
```
|
|
|
|
Both must be PEM-encoded. Leave empty to connect without a certificate.
|
|
|
|
## Config Reload
|
|
|
|
`F5` reloads `~/.config/tuimble/config.toml` from disk.
|
|
|
|
**Safe changes** (applied immediately): PTT key/mode/backend, audio
|
|
gain values.
|
|
|
|
**Restart-requiring changes** (server settings, audio device/rate):
|
|
shown as warnings. Press `F5` again to confirm reconnect, or any
|
|
other key to cancel.
|
|
|
|
## Reconnection
|
|
|
|
On unexpected disconnect (server restart, network loss), tuimble
|
|
automatically retries with exponential backoff:
|
|
|
|
- Initial delay: 2 seconds, doubling each attempt (2, 4, 8, 16, 30...)
|
|
- Maximum delay: 30 seconds
|
|
- Maximum attempts: 10
|
|
|
|
The status bar shows `◐ reconnecting` during retry. If the server
|
|
rejects authentication, retries stop immediately.
|
|
|
|
After all attempts are exhausted, press `F5` to retry manually.
|
|
`F5` also cancels an in-progress reconnect and starts a fresh attempt.
|
|
|
|
## Configuration
|
|
|
|
See `~/.config/tuimble/config.toml`. All fields are optional;
|
|
defaults connect to localhost:64738.
|