Luxel is a native GNOME app for controlling LIFX smart bulbs from the Linux desktop — no phone, no cloud account. It's built in Rust with GTK 4 and libadwaita, discovers your bulbs directly on your network with the LIFX LAN protocol, and controls them with millisecond latency. Group lights into rooms, save scenes, and dial in the perfect color or warm white from one calm panel.
Features
- Local control, no cloud needed — bulbs are discovered directly on your Wi-Fi/LAN over the LIFX UDP protocol and controlled instantly; no account, no internet required
- Rooms — bulbs group into room sections automatically from their LIFX group, or assign any bulb to a different or brand-new room
- Whole-house control — every room header has its own color button, power switch, and brightness slider, and an "All Lights" row drives the entire house at once
- Scenes — save the current state of your lights under a name and restore it with one click, choosing exactly which lights each scene includes; stored locally, no cloud needed
- A real color wheel — a LIFX-style hue & saturation wheel (white at the center, colors toward the rim) plus an RGB hex entry for exact shades
- Warm whites, tuned — a color-temperature slider from candlelight to daylight (1500–9000 K), a typed kelvin entry, and the live LIFX shade name (Incandescent, Daylight…)
- Live state polling — changes made from the LIFX app or a physical switch show up automatically, and bulbs gray out when they're unreachable
- Isolated IoT networks supported — bulbs on a separate subnet/VLAN can be reached by listing their subnets in Preferences; each gets a directed-broadcast probe plus a unicast sweep that routes across VLANs
- Optional LIFX Cloud support — add a personal access token to list and control lights through the cloud when you're away; local control is always preferred when both work
Privacy & security
- No telemetry, no analytics — nothing phones home
- Tight Flatpak sandbox — network access only; no host filesystem access
- The optional cloud token is stored in the app's sandboxed config directory
Tech stack
Rust · GTK 4 · libadwaita · lifx-core. Local control speaks the LIFX LAN protocol over UDP; optional cloud control uses the LIFX HTTP API.
Install
Flatpak
Luxel ships as a Flatpak from its own repo at luxel.hyprlab.co — one command to install, and updates arrive through your normal software updater:
flatpak install --from https://luxel.hyprlab.co/flatpak/io.github.hyprlab.Luxel.flatpakrefBuild from source
A development build needs the GTK 4 and libadwaita development libraries (gtk4-devel and libadwaita-devel on Fedora, or your distribution's equivalent):
git clone https://github.com/hyprlab/luxel.git
cd luxel
cargo runTo build the Flatpak locally, install the GNOME 50 SDK and the Rust extension, then:
flatpak-builder --user --install --force-clean build \
build-aux/io.github.hyprlab.Luxel.json
flatpak run io.github.hyprlab.LuxelShortcuts
| Action | Shortcut |
|---|---|
| Rescan for lights | Ctrl+R |
| Preferences | Ctrl+, |
| Quit | Ctrl+Q |
License
Free and open source under the GNU AGPL-3.0-or-later. Website: luxel.hyprlab.co · Source and releases on GitHub.