Dynamic keyboard RGB lighting based on Spotify album art
Project description
BeatBoard 🎵💡
BeatBoard is a CLI tool for Linux that dynamically changes your keyboard's RGB
lighting based on the colors extracted from the album art of the currently
playing Spotify Desktop song. It uses playerctl to fetch metadata and applies
vibrant colors to create an immersive music experience.
✨ Features
- 🎨 Automatic color extraction from album art of currently playing tracks
- 🌈 Vibrant color analysis to find dominant and complementary colors
- ⌨️ Real-time RGB keyboard control with smooth transitions
- 🔄 Continuous following mode for live color updates as songs change
- 🎵 Spotify Desktop integration through
playerctlfor seamless music control - 🎯 Hardware-agnostic design for easy expansion to new devices
📋 Requirements
System Requirements
- Linux operating system (tested on Ubuntu, Fedora, Arch)
- Python 3.11 or higher
playerctlfor media player integration
Media Players
- Spotify Desktop (required)
Supported Hardware
- Logitech G213 Prodigy (single region supported)
- Additional RGB devices (planned support)
🚀 Installation
Quick Install
# Clone with submodules
git clone --recurse-submodules https://github.com/abdellatif-temsamani/BeatBoard
cd BeatBoard
# Set up virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -e ".[dev]"
Verify Installation
# Test basic functionality
beatboard --help
🎮 Usage
Single Color Change
Extract colors from the current song and apply once:
beatboard
Continuous Mode
Follow the playing song and update colors in real-time:
beatboard --follow
Press Ctrl+C to stop following.
Advanced Options
# Specify hardware
beatboard --hardware g213
# Debug mode
beatboard --debug
# Show version
beatboard --version
🖥️ Supported Hardware
Currently Supported
- Logitech G213 Prodigy - single region supported
- Razer keyboards - via razer-cli
Planned Support
- Corsair RGB keyboards
- Generic HID RGB devices
Want to add support for your device? See our Contributing Guide!
🤝 Contributing
We welcome contributions of all kinds! Here's how you can help:
Code Contributions
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Hardware Support
Help us expand hardware compatibility by:
- Adding device drivers
- Testing on new hardware
- Documentation improvements
See our Contributing Guide for detailed guidelines.
🐛 Troubleshooting
Common Issues
- "playerctl not found": Install with
sudo apt install playerctl(Ubuntu/Debian) - "Permission denied": Add user to
inputgroup:sudo usermod -a -G input $USER - "No album art": Ensure current Spotify Desktop song has album art available
Getting Help
- See our Support Guide for help channels
- Open an issue
- Join our discussions
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- The
playerctlteam for media player integration - Logitech for the G213 hardware specifications
- Contributors and beta testers
📊 Project Status
Made with ❤️ by the BeatBoard team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beatboard-0.1.0.post5.tar.gz.
File metadata
- Download URL: beatboard-0.1.0.post5.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1e49f3d9c42cff0076124f6408330e5166404613715588fbf8c822023178744
|
|
| MD5 |
1a19fb8680ca4375cc2ca70848275da3
|
|
| BLAKE2b-256 |
d0ab205cfaed1c0a7694dd2c16cea59d3f50c99d547e5c96ad4f4964b58617f2
|
File details
Details for the file beatboard-0.1.0.post5-py3-none-any.whl.
File metadata
- Download URL: beatboard-0.1.0.post5-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd0982e31fee43fd32935db18608b95444afa84929fe9ceb7c09e931da8b1603
|
|
| MD5 |
684b73374bed4c53b08defe787b07e30
|
|
| BLAKE2b-256 |
519ed205844f0381616ab3260c3a5a728de8c4fd2046e34d08caa4346f155508
|