diff --git a/readme.md b/readme.md index e69de29..aaab55f 100644 --- a/readme.md +++ b/readme.md @@ -0,0 +1,51 @@ +# TeamSpeak TUI Client + +A modern, fast, and lightweight TeamSpeak 3 client built in Go with a beautiful Terminal User Interface (TUI). + +## 🚀 Features +- **Low Latency Audio**: Optimized for both Windows (WASAPI) and Linux (PortAudio). +- **Responsive UI**: Built with Bubble Tea for a smooth terminal experience. +- **Cross-Platform**: Full support for Windows and Linux (including WSL2). +- **Audio Controls**: Per-user volume and mute indicators. + +## 🛠️ Linux Dependencies + +To build the project on Linux (including Ubuntu/WSL2), you need to install the following system libraries: + +```bash +sudo apt-get update +sudo apt-get install -y \ + libportaudio2 \ + portaudio19-dev \ + libopus-dev \ + libpulse-dev +``` + +### 🔊 WSL2 Audio Setup + +WSL2 does not have direct access to your Windows audio hardware. To enable audio, we recommend using a PulseAudio network bridge: + +1. **Install PulseAudio on Windows** (e.g., via [portable binaries](https://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/)). +2. **Enable TCP**: Edit `default.pa` in PulseAudio and add: + `load-module module-native-protocol-tcp auth-anonymous=1 listen=0.0.0.0` +3. **Environment Variable**: Set the `PULSE_SERVER` in your WSL2 shell: + ```bash + export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}'):4713 + ``` + +## 🏗️ Building + +```bash +# General build +go build -o ts-tui ./cmd/tui + +# Run with debug logging (highly recommended for audio setup) +go run ./cmd/tui --server your-ip:9987 --debug +``` + +## ⌨️ Common Keys +- `q`: Quit cleanly. +- `Arrows / hjkl`: Navigate channels and users. +- `Enter`: Join channel. +- `1`: Poke user (in User View). +- `m`: Mute/Unmute audio.