From 0b178d371eeb99f421beb1f34c1eb5e02878ef3e Mon Sep 17 00:00:00 2001 From: Username Date: Tue, 24 Feb 2026 14:19:15 +0100 Subject: [PATCH] docs: add volume, certificate, and reload docs --- README.md | 12 ++++++++++++ docs/CHEATSHEET.md | 10 ++++++++-- docs/DEBUG.md | 15 +++++++++++++++ docs/USAGE.md | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ff6fa9..4ea9227 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,9 @@ TUI Mumble client with voice support and push-to-talk. - Channel browsing and text chat - Chat input history (Up/Down arrow navigation) - Self-deafen toggle +- Volume control (input/output gain) +- Client certificate authentication +- Config hot-reload (F5) ## Key Bindings @@ -17,7 +20,10 @@ TUI Mumble client with voice support and push-to-talk. |-----|--------| | `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) | @@ -44,6 +50,12 @@ mkdir -p ~/.config/tuimble 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" diff --git a/docs/CHEATSHEET.md b/docs/CHEATSHEET.md index a511ea4..ca2b659 100644 --- a/docs/CHEATSHEET.md +++ b/docs/CHEATSHEET.md @@ -6,7 +6,13 @@ make run launch tuimble make test run tests make lint check code style +F1 toggle self-deafen +F2 cycle output volume +F3 cycle input volume +F4 push-to-talk +F5 reload config +Tab cycle focus +Enter send message / join channel +Up/Down history / channel navigation q quit -space push-to-talk (hold) -Enter send message ``` diff --git a/docs/DEBUG.md b/docs/DEBUG.md index ce09d8e..a69ed6d 100644 --- a/docs/DEBUG.md +++ b/docs/DEBUG.md @@ -38,6 +38,21 @@ groups # should include 'input' Add user to `input` group: `sudo usermod -aG input $USER` +### Certificate errors + +If the server requires client certificates: + +```sh +# Verify cert/key pair +openssl x509 -in cert.pem -noout -subject -dates +openssl rsa -in key.pem -check -noout +``` + +- Both `certfile` and `keyfile` must be PEM-encoded +- Paths must be absolute or relative to the working directory +- Key must not be passphrase-protected (pymumble limitation) +- If the server uses a self-signed CA, pymumble verifies by default + ### Connection refused - Verify server address and port diff --git a/docs/USAGE.md b/docs/USAGE.md index e116599..00acab2 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -13,7 +13,10 @@ tuimble --host mumble.example.com --user myname |-----|--------| | `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) | @@ -45,6 +48,41 @@ python3 -m pstats /tmp/tuimble.prof # interactive explorer 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. + ## Configuration See `~/.config/tuimble/config.toml`. All fields are optional;