Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Compared with other tools

Resource use

lightmime is one native binary with no interpreter, browser engine or web server. The compositor copies the screen into PipeWire at no more than 60 fps; lightmime drops frames above the sync rate and scales each one down to 64 × 36 pixels before converting it, so colour mapping only ever looks at 2,304 pixels a frame. See How it works.

Measured with lightmime run syncing a 3440 × 1440 desktop to a four-light area at 30 fps, with the Home Assistant bridge on, on an AMD Ryzen 9 5900XT, over 60 seconds:

CPUabout 0.9 % of one core (0.5 % user, 0.4 % system)
Memory36 MB resident, 26 MB proportional set size
Binary12.5 MB headless, 40 MB with the window and tray (stripped)

To check it on your own machine while syncing:

pid=$(pgrep -x lightmime)
grep VmRSS /proc/$pid/status
top -p $pid

Lowering fps in Tuning lowers CPU use further.

Lumux and HyperHDR

Lumux and HyperHDR are the other open-source ways to sync Hue lights with a Linux screen.

lightmimeLumuxHyperHDR
Written inRustPython, GTK4 / libadwaitaC++
LightsPhilips HuePhilips HueHue, LIFX, WLED, LED strips over serial or SPI, and more
Screen capture on WaylandPortal + PipeWirePortalPortal + PipeWire, also USB HDMI grabbers
InterfaceWindow, tray icon, CLIWindow, tray iconWeb interface
Runs headlessYes, also as a systemd user serviceNoYes, but PipeWire capture needs it to run as a user application, not a system service
Home AssistantMQTT discoveryNoMQTT
PlatformsLinuxLinuxLinux, Windows, macOS
InstallFlatpak, binariesFlathub, pipPackages, binaries
LicenceMIT or Apache-2.0MITMIT

Lumux is the closest in scope: a GTK desktop app for Hue entertainment areas on Wayland, on Flathub. It processes frames in Python; its README suggests lowering the capture resolution and frame rate if CPU use is high.

HyperHDR is an ambient-lighting server for many kinds of lights and capture sources, with HDR tone mapping, an LED layout editor and a web interface. If you drive LED strips, capture a TV through an HDMI grabber or need HDR handling, use HyperHDR; it does far more than lightmime.

lightmime does one thing: Hue sync from a Linux desktop, with little setup and as little overhead as possible.