Synchronize Govee, iDotMatrix, and LSC/Tuya lights with your screen or music.
Visit the website: lumisync.minlor.net
Features • Installation • Usage • Development • Roadmap
Note
This project is in active development. Windows is fully supported; Linux X11 is partial, macOS/Wayland are WIP.
| Feature | Description |
|---|---|
| 🖥️ Monitor Sync | Sample colors from screen regions and sync to your LED strip in real-time |
| 🎵 Music Sync | React to audio with dynamic color patterns |
| 🎨 Color Control | Set custom colors and brightness directly from the app |
| 🖌️ Modern GUI | Blue-accented PySide6 interface with selectable Acrylic, Mica, and Solid Dark window materials |
| 🔌 Multi-Vendor | Govee (LAN), iDotMatrix pixel panels (Bluetooth), and LSC/Tuya WiFi lights |
| 🔍 Auto-Discovery | Automatically finds Govee devices on your LAN via UDP broadcast |
| ⚡ Low Latency | Direct LAN communication, no cloud required |
Every device family works out of the box — a single pip install lumisync (or
the packaged Windows build) bundles all transports, no extras to remember.
| Family | Transport | Notes |
|---|---|---|
| Govee strips/bulbs | LAN (UDP) | Enable "LAN Control" in the Govee app |
| iDotMatrix panels | Bluetooth LE | Pixel displays; see docs |
| LSC / Tuya WiFi lights | LAN (Tuya local) | Needs the device's local key — see docs |
|
|
| Monitor Sync Map display colors across one or more lights. |
Music Sync Choose reactions and palettes or let Auto Director decide. |
Requirements: Python 3.11 or higher
pip install lumisyncpip install git+https://github.com/Minlor/LumiSync.gitgit clone https://github.com/Minlor/LumiSync.git
cd LumiSync
pip install -e .- Windows — a portable
.zipand a single-file.exeare attached to each GitHub release. - Linux — an
x86_64AppImage is attached to each release;chmod +xit and run. Build it yourself withtools/build_linux.sh(needs Python 3.12+ andappimagetooldeps). A Flatpak is scaffolded inpackaging/flatpak/but not yet finished.
Platform notes: Windows is fully supported. On Linux, device control, music sync, and manual control work on X11 and Wayland; screen (monitor) sync currently requires an X11/Xorg session — Wayland capture is planned.
lumisyncThe GUI opens by default. The legacy interactive terminal is still available
with lumisync --cli; direct headless modes are available through
lumisync --monitor and lumisync --music.
- Discover devices — Click "Discover Devices" for Govee LAN lights or "Scan Bluetooth" for pixel panels.
- Select your lights — Choose one or more devices from the Devices page.
- Control your lights — Set color, brightness and power directly from each device card.
- Start syncing — Open Monitor Sync or Music Sync, choose the target devices and start the mode.
- Devices — Discover, add and control LAN or Bluetooth lights; multi-select devices for bulk actions.
- Monitor Sync — Map display colors to selected devices, groups, zones, and custom LED regions.
- Music Sync — Choose reactions, palettes, targets and brightness, or use Auto Director.
- Draw — Paint still images or frame-by-frame animations for compatible iDotMatrix panels.
- Settings — Choose Acrylic, Mica, or Solid Dark; select a display, tune sync behavior, manage groups, startup and system-tray options.
- LED Mapping - Customize which screen regions map to which LEDs
- Brightness - Adjust per-mode brightness (10-100%)
- Display Selection - Choose which monitor to capture (multi-monitor support)
- Sync Tuning - Tune smoothing, saturation, frame rate, gamma and music response
lumisync/
├── lumisync.py # Entry point & CLI
├── connection.py # Govee UDP protocol (port 4001/4002)
├── devices.py # Device discovery & caching
├── config/options.py # Runtime configuration
├── sync/ # Monitor & music sync engines
├── gui/ # PySide6 application
│ ├── controllers/ # Business logic (QObject + pyqtSignal)
│ ├── views/ # UI components
│ └── widgets/ # Reusable widgets
└── utils/ # Logging, colors, file ops
python -m unittest discover -s testsThe production app icon, transparent mark, tray variants, Windows .ico, and
GitHub banner live in assets/brand. Regenerate the complete
icon set from its single SVG geometry with:
python tools/generate_brand_assets.pyFresh README screenshots can be captured from the real PySide application on Windows with:
python tools/capture_readme_screenshots.py --material acrylic| Platform | Screen Capture | Status |
|---|---|---|
| Windows | dxcam | ✅ Full support |
| Linux (X11) | mss | |
| Linux (Wayland) | - | 🚧 WIP |
| macOS | - | 🚧 WIP |
- Multi-device support
- Wayland & macOS screen capture
- Basic color control mode
- Custom sync algorithms
- Plugin system for community extensions
- Wireshark — Protocol analysis
- See pyproject.toml for all dependencies
MIT © Minlor
⭐ Star this repo if you find it useful!


