Skip to content

sandwichfarm/keylight-control

Repository files navigation

Key Light Controller for Linux

A modern, standalone Linux alternative to Elgato's Control Center for Controlling Key Light devices. Native Linux support for both X11 and Wayland. Does not collect any data or "call home" unlike other spyware.

Keylight Control UI

Features

  • πŸ” Automatic device discovery via mDNS/Bonjour
  • 🎨 Modern dark theme UI styled to match professional control software
  • πŸ’‘ Real-time brightness control (1-100% - prevents accidental off)
  • 🌑️ Color temperature control (2900K-7000K)
  • πŸ”§ System tray integration with minimize/restore
  • ⚑ Smooth, throttled updates to prevent device overload
  • πŸ–₯️ Native Wayland and X11 support - works everywhere
  • πŸš€ Single instance enforcement - no duplicate windows
  • πŸ“¦ Standalone binary - no installation required
  • πŸ”„ Dynamic window sizing - adjusts to number of devices
  • ⌨️ Keyboard shortcuts for quick control

Compatibility

Supported Systems

  • Linux: All major distributions (Ubuntu, Fedora, Arch, Debian, etc.)
  • Display Servers: X11, Wayland, XWayland
  • Python: 3.8 or higher
  • Qt: Uses PySide6 (Qt6)

Quick Start (Pre-built Binary)

Download Latest Release

  1. Go to Releases
  2. Download keylight-controller-linux-x64.tar.gz
  3. Extract and run:
tar -xzf keylight-controller-linux-x64.tar.gz
chmod +x keylight-controller
./keylight-controller

That's it! No installation required.

Installation Options

Option 1: Standalone Binary (Easiest)

# Download from releases page
wget https://github.com/sandwichfarm/keylight-control/releases/latest/download/keylight-controller-linux-x64.tar.gz
tar -xzf keylight-controller-linux-x64.tar.gz
chmod +x keylight-controller
./keylight-controller

# Optional: Install system-wide
sudo mv keylight-controller /usr/local/bin/

Option 2: Build from Source

Prerequisites

  • Python 3.8+ (python3 --version)
  • pip package installer

Install Dependencies

# Clone the repository
git clone https://github.com/sandwichfarm/keylight-control.git
cd keylight-control

# Install dependencies
pip3 install --user -r requirements.txt

# Make executable
chmod +x keylight_controller.py

# Run
./keylight_controller.py

Option 3: Using Virtual Environment

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run
python keylight_controller.py

Option 4: System packages (Distribution-specific)

For Arch Linux:

sudo pacman -S python-pyside6 python-aiohttp python-zeroconf
pip install --user qasync

For Ubuntu 22.04+:

sudo apt install python3-pyside6.qtcore python3-pyside6.qtgui python3-pyside6.qtwidgets
pip3 install --user aiohttp zeroconf qasync

Desktop Integration

Create Desktop Entry

# Copy the desktop file
cp keylight-controller.desktop ~/.local/share/applications/

# Update desktop database
update-desktop-database ~/.local/share/applications/

Add to PATH (Optional)

# Create symlink in local bin
ln -s $(pwd)/keylight_controller.py ~/.local/bin/keylight-controller

# Ensure ~/.local/bin is in PATH (add to ~/.bashrc if needed)
export PATH="$HOME/.local/bin:$PATH"

Usage

Launching

  • From Terminal: ./keylight_controller.py or keylight-controller
  • From Desktop: Search for "Keylight Control" in your application launcher

Controls

  • Power Button: Toggle light on/off
  • Brightness Slider: Adjust light intensity (1-100%)
  • Temperature Slider: Adjust color temperature (2900K-7000K)
  • System Tray: Click to show/hide, right-click for menu

Keyboard Shortcuts

  • Ctrl+Q: Quit application
  • Escape: Minimize to system tray
  • Shift+Click X: Force quit (bypass tray)

Troubleshooting

"No module named 'PySide6'"

pip3 install --user PySide6

"qt.qpa.plugin: Could not find the Qt platform plugin"

For Wayland:

export QT_QPA_PLATFORM=wayland

For X11:

export QT_QPA_PLATFORM=xcb

Permission Issues

If you get permission errors with pip:

pip3 install --user -r requirements.txt

Multiple Python Versions

If you have multiple Python versions:

python3.8 -m pip install -r requirements.txt
python3.8 keylight_controller.py

Device Not Found

  • Ensure devices are on the same network
  • Check firewall settings for mDNS (port 5353)
  • Verify devices are powered on

Dependencies

  • PySide6: Qt6 bindings for Python
  • aiohttp: Async HTTP client
  • zeroconf: mDNS service discovery
  • qasync: Qt async event loop integration

License

GPL-3.0

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

About

A keylight control application for linux

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •