Skip to main content

A Python library for syncing Govee led strips with audio and screen content.

Project description

💡 LumiSync

Sync your Govee LED strips with your screen or music

Python 3.11+ PyPI version License: MIT GitHub stars

FeaturesInstallationUsageDevelopmentRoadmap


[!NOTE] This project is in active development. Windows is fully supported; Linux X11 is partial, macOS/Wayland are WIP.

✨ Features

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
🎨 Modern GUI PyQt6 interface with Windows 11-style navigation and theme support
🔍 Auto-Discovery Automatically finds Govee devices on your LAN via UDP broadcast
Low Latency Direct LAN communication, no cloud required
LumiSync Screenshot

📦 Installation

Requirements: Python 3.11 or higher

From PyPI (Recommended)

pip install lumisync

From GitHub (Latest)

pip install git+https://github.com/Minlor/LumiSync.git

Development Install

git clone https://github.com/Minlor/LumiSync.git
cd LumiSync
pip install -e .

🚀 Usage

Launch the App

lumisync

Select option 3 to launch the GUI, or choose 1 (Monitor Sync) / 2 (Music Sync) for CLI mode.

Quick Start

  1. Discover devices - Click "Discover Devices" in the Devices tab
  2. Select your LED strip - Click on the discovered device
  3. Start syncing - Go to Sync Modes and click "Start Monitor Sync" or "Start Music Sync"

Configuration

  • 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)
  • Themes - Switch between light/dark themes via Settings

🛠️ Development

Project Structure

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/                 # PyQt6 application
│   ├── controllers/     # Business logic (QObject + pyqtSignal)
│   ├── views/           # UI components
│   └── widgets/         # Reusable widgets
└── utils/               # Logging, colors, file ops

Run Tests

python tests/test_color.py

Platform Support

Platform Screen Capture Status
Windows dxcam ✅ Full support
Linux (X11) mss ⚠️ Partial
Linux (Wayland) - 🚧 WIP
macOS - 🚧 WIP

🗺️ Roadmap

  • Multi-device support
  • Wayland & macOS screen capture
  • Basic color control mode
  • Custom sync algorithms
  • Plugin system for community extensions

🙏 Credits

📄 License

MIT © Minlor


minlor.net · GitHub @minlor

⭐ Star this repo if you find it useful!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lumisync-0.4.0.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lumisync-0.4.0-py3-none-any.whl (59.5 kB view details)

Uploaded Python 3

File details

Details for the file lumisync-0.4.0.tar.gz.

File metadata

  • Download URL: lumisync-0.4.0.tar.gz
  • Upload date:
  • Size: 48.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lumisync-0.4.0.tar.gz
Algorithm Hash digest
SHA256 0a8bbee5568af865135a8cdfe0d6c825b151adc5b4ab25a75a553cdd34bab858
MD5 d969a8ae5f362b1d34abb6703b305b9a
BLAKE2b-256 66d053b734963a4a158b3ca8aa0201d3d3210859d526feef03f64122a09c4b77

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumisync-0.4.0.tar.gz:

Publisher: pypi.yaml on Minlor/LumiSync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lumisync-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: lumisync-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 59.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lumisync-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ba7210db3432d63f4521e7f4dd43354fb1964a7c758722f00dea8753f8b52e8
MD5 e630db71e134c108b66763e0dd818118
BLAKE2b-256 8542f66ff40fb27b4731eb3d9d740a43d594734e8e95581323d3c80c514b7f05

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumisync-0.4.0-py3-none-any.whl:

Publisher: pypi.yaml on Minlor/LumiSync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page