# 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.