Files
tuimble/docs/DEBUG.md
2026-02-24 14:54:40 +01:00

84 lines
2.0 KiB
Markdown

# Debugging
## Verbose Mode
```sh
tuimble --verbose # (planned)
```
## Common Issues
### No audio devices found
```sh
python3 -c "import sounddevice; print(sounddevice.query_devices())"
```
Check that portaudio is installed and devices are accessible.
### opuslib import error
```sh
python3 -c "import opuslib"
```
If this fails, install libopus: `apt install libopus0`
### Kitty protocol not detected
Verify terminal supports the Kitty keyboard protocol.
Known working: Kitty, WezTerm, Ghostty, foot.
### evdev permission denied
```sh
ls -la /dev/input/event*
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
- Check firewall allows outbound TCP/UDP to port 64738
- Test with: `nc -zv <host> 64738`
### Connection drops / reconnection
When tuimble loses connection, it retries automatically with backoff.
The chatlog shows each attempt:
```
✗ disconnected from server
reconnecting in 2s (attempt 1/10)...
✗ attempt 1: network error: [Errno 111] Connection refused
reconnecting in 4s (attempt 2/10)...
✓ connected as myname
```
Common causes:
- **Server restart** — normal, reconnect succeeds when server is back
- **Network loss** — check connectivity, tuimble retries automatically
- **Auth timeout** — server may drop idle connections; reconnect handles this
- **"rejected" with no retry** — wrong password or certificate issue
If reconnection fails after 10 attempts, press `F5` to retry manually.
Update `config.toml` if server details changed.