A terminal-based Bluetooth device manager built with Go and Bubble Tea, designed for Linux systems and Hyprland users.
- π΅ Interactive TUI: Beautiful terminal interface with mouse and keyboard support
- π± Device Management: Scan, pair, connect, and disconnect Bluetooth devices
- β‘ Real-time Status: Live updates of device connection states
- ποΈ Bluetooth Control: Enable/disable Bluetooth adapter
- π±οΈ Mouse Support: Full mouse interaction including scrolling and clicking
- β¨οΈ Keyboard Navigation: Vim-style navigation keys
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β HyprBluetooth - Bluetooth Device Manager β
β π΅ Bluetooth: ON β
β β
β > β WH-1000XM4 (00:11:22:33:44:55) β
β β Magic Mouse (66:77:88:99:AA:BB) β
β β Unknown Device (CC:DD:EE:FF:00:11) β
β β
β Controls: β
β β/k, β/j: Navigate Enter/Space: Connect β
β s: Scan r: Refresh p: Pair d: Disconnect β
β e: Enable/Disable Bluetooth q: Quit β
β β
β Status: β Connected β Paired β Unpaired β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Download the latest release for your architecture:
# For AMD64
curl -LO https://github.com/yourusername/hyprBluetooth/releases/latest/download/hyprBluetooth_linux_amd64.tar.gz
tar -xzf hyprBluetooth_linux_amd64.tar.gz
sudo mv hyprBluetooth /usr/local/bin/
# For ARM64
curl -LO https://github.com/yourusername/hyprBluetooth/releases/latest/download/hyprBluetooth_linux_arm64.tar.gz
tar -xzf hyprBluetooth_linux_arm64.tar.gz
sudo mv hyprBluetooth /usr/local/bin/git clone https://github.com/yourusername/hyprBluetooth.git
cd hyprBluetooth
go build -o hyprBluetooth .
sudo mv hyprBluetooth /usr/local/bin/- Linux system with BlueZ stack
bluetoothctlcommand available- Go 1.24+ (for building from source)
Arch Linux:
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetoothUbuntu/Debian:
sudo apt install bluetooth bluez bluez-tools
sudo systemctl enable --now bluetoothFedora:
sudo dnf install bluez bluez-tools
sudo systemctl enable --now bluetoothRun the application:
hyprBluetooth| Key | Action |
|---|---|
β/k |
Move cursor up |
β/j |
Move cursor down |
Enter/Space |
Connect/disconnect selected device |
s |
Scan for new devices |
r |
Refresh device list |
p |
Pair selected device |
d |
Disconnect selected device |
e |
Enable/disable Bluetooth adapter |
Ctrl+r |
Full refresh (devices + Bluetooth status) |
q/Ctrl+c |
Quit application |
- Scroll wheel: Navigate up/down through device list
- Left click: Select device
- All controls: Fully functional with mouse
βConnected: Device is actively connectedβPaired: Device is paired but not connectedβUnpaired: Device is discovered but not paired
hyprBluetooth works out of the box with no configuration required. It uses the system's BlueZ stack through bluetoothctl commands.
You can bind hyprBluetooth to a key combination in your Hyprland config:
# ~/.config/hypr/hyprland.conf
bind = SUPER, B, exec, hyprBluetooth
Or create a floating window rule:
windowrule = float, ^(hyprBluetooth)$
windowrule = size 800 600, ^(hyprBluetooth)$
windowrule = center, ^(hyprBluetooth)$
sudo systemctl start bluetooth
sudo systemctl enable bluetoothMake sure your user is in the bluetooth group:
sudo usermod -a -G bluetooth $USER
# Log out and log back inEnsure bluetoothctl is installed and in your PATH:
which bluetoothctl- Try unpairing and re-pairing the device
- Make sure the device is in pairing mode
- Check if the device is already connected to another system
go mod download
go build -o hyprBluetooth .go test ./...golangci-lint run- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Bubble Tea TUI framework
- Styled with Lip Gloss
- Inspired by the need for a simple Bluetooth manager for tiling window managers