Skip to content

samclane/mantle

Repository files navigation

Mantle

example workflow

Mantle Logo

🌐 English | Español | 简体中文 | Français | Deutsch | Português

Mantle is a cross-platform desktop application for discovering and controlling LIFX smart lights over your local network. Built with Rust and egui, it offers real-time light management alongside unique ambient features like screen-color sync, audio-reactive lighting, saved scenes with scheduling, global keyboard shortcuts, and a system tray for quick access. Born from the ashes of lifx_control_panel.

Releases

You can download the latest release here.

Builds are available for Windows (x86_64), Linux (x86_64), and macOS (Apple Silicon / aarch64).

Screenshots

Mantle

Features

Light Discovery and Control

  • Automatically discover LIFX bulbs on the local network
  • Toggle power, adjust hue/saturation/brightness/kelvin with real-time sliders
  • Set transition duration for smooth color changes
  • Multizone support for light strips with per-zone and gradient controls

Grouping

  • Organize lights into groups
  • Control all lights at once or filter/search by name

Eyedropper and Screen Sync

  • Pick any color from your screen with the eyedropper tool
  • Average a screen region, window, or full monitor to drive ambient lighting in real time

Audio-Reactive Lighting

  • Drive light colors from microphone input using FFT analysis
  • Optional waveform debug window for visualizing the audio spectrum

Scenes and Scheduling

  • Save and load named scenes (color presets across multiple lights)
  • Schedule scenes to activate automatically at specific times of day

Keyboard Shortcuts

  • Bind global hotkeys to lighting actions for hands-free control

System Tray

  • Minimize to system tray
  • Quick-toggle power and quit from the tray menu

Localization

  • Available in 6 languages: English, Spanish, Simplified Chinese, French, German, and Portuguese (Brazil)

Built With

Crate Purpose
eframe / egui GUI framework
lifx-core LIFX LAN protocol
cpal + rustfft Audio capture and FFT
xcap Screen capture
rdev Global keyboard/mouse input
tray-icon System tray
rust-i18n Localization

Building

Prerequisites

  • Rust toolchain (stable)
  • The data/ folder containing products.json (included in the repo; embedded at compile time)

Linux only -- install the following system libraries:

sudo apt install libasound2-dev libudev-dev libxtst-dev libevdev-dev libgtk-3-dev libxdo-dev

Compile

cargo build --release

Run

cargo run --release

Logs are written to log/output.log.

Feature Flags

  • puffin -- Enables the Puffin profiler for performance analysis
cargo run --release --features puffin

Contributing

The repository includes a pre-commit hook that runs cargo fmt --check, cargo clippy, and cargo test. To enable it:

git config core.hooksPath .githooks

Feedback

Join the Discord server here to provide feedback, report bugs, or request features.

Acknowledgements

Translations

Language Is Complete Is Machine
English Yes No
Spanish Yes Yes
Chinese (Simplified) Yes Yes
French Yes Yes
German Yes Yes
Portuguese (Brazil) Yes Yes

About

A desktop application for controlling LIFX lights

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors