A Linux system tray application that monitors your followed Twitch streams and provides desktop notifications when streamers go live written in Rust.
- System Tray Integration: Lightweight tray icon showing live stream count
- Desktop Notifications: Get notified when followed streamers go live
- Stream Management: Click streams in the tray menu to open them directly
- OAuth Authentication: Secure Twitch authentication flow
- Configurable Settings: Customize notifications, refresh intervals, and UI preferences
- Custom streaming application: Launch your preferred streaming app with a single click
- Custom chat application: Launch your preferred chat application with a single click
- GTK Settings Window: Easy-to-use configuration interface
For Arch Linux users, you can install using the provided PKGBUILD (git version):
# Clone the repository
git clone https://github.com/fldc/twitch-indicator.git
cd twitch-indicator
# Build and install the package (builds from latest git)
makepkg -si- Linux system with GTK3 support (GTK4 does not support Ayatana indicators)
- Rust 1.70+ (for building from source)
- System tray support (desktop environments with support for Ayatana indicators)
# Clone the repository
git clone <repository-url>
cd twitch-indicator
# Build the application
cargo build --release
# Run the application
./target/release/twitch-indicator
# Install desktop file (optional)
sudo cp twitch-indicator.desktop /usr/share/applications/
sudo update-desktop-databaseThe application requires the following system libraries:
libgtk-3-devlibappindicator3-devlibssl-devpkg-config
On Ubuntu/Debian:
sudo apt install libgtk-3-dev libappindicator3-dev libssl-dev pkg-config- Launch the application
- Complete the OAuth authentication flow
- Configure your preferences through the settings menu
Access settings through the tray menu or run with --gtk-settings:
- General: Autostart, minimize to tray behavior
- Notifications: Enable/disable notifications, timeout settings, display options
- UI: Theme preferences, channel sorting
- Twitch: Refresh intervals, authentication management
Settings are stored in ~/.config/twitch-indicator/config.toml:
[general]
autostart = false
minimize_to_tray = true
[notifications]
enabled = true
show_game = true
show_viewer_count = true
timeout_ms = 5000
[ui]
show_selected_channels_on_top = true
dark_theme = false
[twitch]
client_id = "your-client-id"
refresh_interval_minutes = 2- Start the application: Run
twitch-indicator - Authenticate: Follow the OAuth flow on first run
- Monitor streams: The tray icon shows live stream count
- View streams: Right-click the tray icon to see live streams
- Open streams: Click on a stream to open it in your default browser
- Settings: Access configuration through the tray menu
# Show help
twitch-indicator --help
# Open GTK settings window
twitch-indicator --gtk-settings
# Run with debug logging
RUST_LOG=debug twitch-indicator- Live Streams: List of currently live followed channels
- Settings: Open configuration window
- Refresh: Manually refresh stream status
- Quit: Exit the application
# Development build
cargo build
# Release build
cargo build --release
# Run with logging
RUST_LOG=info cargo run
# Check code
cargo checkKey dependencies include:
tokio- Async runtimereqwest- HTTP client for Twitch APIgtk- GUI toolkitlibappindicator- System tray supportserde- Serializationanyhow- Error handlingtracing- Logging
This project is licensed under the MIT License - see the LICENSE file for details.