LedAlert Field manual Source on GitHub
Guide index

Your room.
On alert.

Install and connect
LedAlert's mildly alarmed pixel diode
On this page

Your notifications, in the room. LedAlert is a native Linux workbench for routing desktop notifications and media playback to spots of light on a WLED RGB strip. Draw the room, place your displays, map the strip — then watch each application claim its place.

GitHub release crates.io release Verification workflow License


The native app: colors spread from each application's assigned LEDs.

Install

With Rust and the native dependencies installed:

cargo install ledalert --locked

Prefer a prebuilt binary? cargo-binstall fetches the official release asset:

cargo binstall ledalert --strategies crate-meta-data

You can also download and verify the ledalert-*-linux-x86_64.tar.gz archive and SHA256SUMS from the latest GitHub Releases. Real nerds of course build from source?

Quickstart

  1. Draw the room. Start with a rectangle; Room shape… handles L-shapes later.
  2. Place your displays. Import KDE geometry or arrange them by hand.
  3. Map the strip. Trace the route and LED order, then set the WLED address.
  4. Add rules. Try examples and on-screen demos first — no hardware needed.
  5. Finish saves the setup. Enable lighting whenever you're ready.

Compatibility

Your desktop and your lights decide whether LedAlert fits. The short version:

Your desktopStatus
KDE Plasma on WaylandLinux x86_64 — the primary target: display discovery, pinned-app suggestions, notifications, lock detection and media markers. Supported
KDE Plasma on X11LedAlert runs as a normal X11 client; the full integration is unverified. Unverified
GNOMEStandard notification and lock services; manual display placement replaces KDE discovery. Unverified
Xfce Unverified
Cinnamon Unverified
Other Linux desktopsMATE, Budgie, LXQt and others use the same standard notification and lock services; they are unverified. Unverified
WindowsNo desktop backend is implemented. Unsupported
macOSNo desktop backend is implemented. Unsupported
Your lightsStatus
One WLED RGB controller and stripOne continuous path, mapped in your room; up to 8,192 RGB LEDs. Supported
Multiple controllers, separate runs or matrices Unsupported
RGBW/CCT-specific output and other controller protocols Unsupported

The Linux binary needs glibc 2.36 or newer, a graphical session, session D-Bus and working OpenGL/EGL. Per-feature details and the tested baseline: Compatibility. Your setup is not listed? See the roadmap for where support is headed and the contribution policy for how to land it — verified additions from real environments are exactly what we want.

Lighting permissions

Lighting starts disabled on every launch. Connecting to WLED is read-only, but contacts the device. Enable lighting grants session-only permission; demos and Preview then reach the strip too. Guide with real lights → Take control is separate consent for whole-strip mapping, capped at two minutes and 25/255 per RGB channel. Neither permission is saved.

  • Minimize keeps LedAlert running; Close stops it. No hidden daemon, no tray-only mode, no automatic startup.
  • Lock and Quiet mode inhibit output. Notifications received while inhibited are discarded, not replayed.
  • WLED HTTP/DDP is unauthenticated — use one controller on a trusted LAN. Releasing control does not guarantee darkness; recovery from a crash or network loss depends on WLED's realtime timeout.
  • Brightness limits cap RGB data, not electrical power. LedAlert is ambient awareness, not a safety alarm. Reduced motion gives steady indications instead of fades and ripples.

LedAlert does not retain notification text or song metadata, capture audio, or read screen content. See privacy details.

Field manual

Install · Room · Displays · Strip · Rules · Everyday controls · Troubleshooting

Compatibility · Technical reference · Roadmap and contributing · Release notes · Changelog · Security reporting

The field manual is built with ReGen.

License status

LedAlert is dual-licensed under the MIT License or Apache License 2.0, at your choice (MIT OR Apache-2.0). Third-party components retain their own licenses, supplied in bundle notices and license texts. The bundled font's SIL Open Font License applies to that font only.