BluPlayer is a Terminal User Interface (TUI) for controlling Bluetooth media playback on Linux. It is designed primarily for A2DP Sink scenarios, providing an interface for AVRCP Media Browsing and playback control via BlueZ.
It's very much WIP (and I'm in the middle of renaming the app from BlueVis to BluPlayer).
- Device Browser: Navigate paired devices and media folders (playlists, albums) using a tree structure.
- Player Selector: Switch between connected devices and active media players.
- Media Player: Display playback status and metadata (Artist, Title, Album).
- Terminal Overlay: Toggle a terminal interface (
~key) to executebluetoothctlcommands. - Event Log: View system events and logs.
To communicate with DBus (via pydbus/pygobject), you may need system-level development libraries.
# Ubuntu / Debian / Raspberry Pi OS
sudo apt install python3-dev libglib2.0-dev libcairo2-dev libgirepository1.0-devIt is recommended to use a virtual environment.
# Create venv
python3 -m venv .venv
# Activate venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtAlternatively, you can install the package in editable mode:
pip install -e .Run the application directly:
python bluevis/main.py| Key | Action |
|---|---|
q |
Quit the application |
s |
Scan / Refresh Device List |
~ |
Toggle "Quake" Console (Bluetooth Shell) |
bluevis/ui: Textual widgets and app layout.bluevis/backend: DBus service communication layer.bluevis/models: Data structures (dataclasses).bluevis/css: Centralized CSS styling.