A small Linux CLI with no Python-package dependencies for the Alienware AW-ELC
USB lighting controller (187c:0550). It controls chassis brightness, static
RGB colors, native effects, and a handful of curated presets without Alienware
Command Center.
The project intentionally stays simple: one Python executable, one udev rule, and one installer.
Tested on:
- Alienware Aurora ACT1250
- AW-ELC platform
0x0811, firmware1.1.11 - Ubuntu 24.04 with Python 3 and
libusb-1.0
Other Alienware systems using USB ID 187c:0550 may work, but their segment
ordering can differ. Open an issue with the output of alien-lights status if
you test another model.
git clone https://github.com/JakeLaney/alien-lights.git
cd alien-lights
./install.shThis installs alien-lights and convenience symlinks into ~/.local/bin, then
installs a udev rule limited to 187c:0550. On Ubuntu, ensure your account is
in plugdev; desktop sessions can also receive access through uaccess.
To skip the system udev rule and use the automatic pkexec fallback instead:
./install.sh --user-onlylights-off
lights-on
lights-dim 25
lights-status
lights-preset aurora --brightness 25
lights-preset synthwave
lights-preset rainbow
lights-presetsThe full and shortcut forms are equivalent:
alien-lights preset aurora --brightness 25
lights-preset aurora --brightness 25Use a named color, RRGGBB, #RRGGBB, or 0xRRGGBB:
lights-color violet --brightness 30
lights-color 00ffaa --brightness 20
lights-colorsNative effects:
lights-effect breathe cyan --speed slow --brightness 30
lights-effect morph magenta blue --speed slow --brightness 40
lights-effect pulse red --speed fast --brightness 20
lights-effect spectrum --brightness 35
lights-effect wave --brightness 35Available speeds are slow, medium, and fast. Brightness is expressed as
an intuitive percentage from 0 to 100; the CLI translates that to the
controller's inverted dim scale.
Curated presets:
| Preset | Look | Default brightness |
|---|---|---|
aurora |
Teal, electric blue, and violet morph | 50% |
synthwave |
Neon magenta, purple, and cyan chase | 55% |
rainbow |
Phased full-spectrum wave | 55% |
ember |
Red, orange, and amber fire glow | 35% |
ice |
Cool white, cyan, and deep-blue drift | 40% |
matrix |
Staggered phosphor-green breathing | 30% |
heartbeat |
Low red pulse | 25% |
gold |
Warm static amber | 30% |
stealth |
Very dim static red | 7% |
Override any preset's default with --brightness.
- The controller reports its segment count at runtime; the tested ACT1250 has 70 segments.
- Effects use the volatile
0xffffanimation slot. The CLI does not save a theme, change the startup animation, or expose the controller's flash-erase command. - Failed animation transactions attempt to dim every reported segment to zero.
- The controller does not expose its current brightness, so
statusreports identity and capabilities rather than inferred state. - Run with
ALIEN_LIGHTS_DEBUG=1to print raw request and response packets.
This is an unofficial, reverse-engineered utility. Use it at your own risk.
The protocol implementation was informed by the Alienware controller support in OpenRGB and AlienFX-Aurora. Thanks to their contributors for documenting the AW-ELC protocol.
GPL-3.0-or-later. See LICENSE.