Supported hardware
Laptops ByteKeys supports
Keyboard lighting through the Linux kernel, built-in drivers for common USB controllers and OpenRGB. Performance modes, fan curves and charge limits through the controls each laptop's firmware offers.
Keyboard lightingPerformance, fans and batteryLaunch keys
- Tested
Confirmed on real hardware.
- Supported
A standard kernel interface or a maintained third-party driver.
- Experimental
Implemented from documented protocols, waiting for someone to confirm it on that hardware.
Keyboard lighting
- ASUS TUF GamingTested
RGB; Static, Breathing, Color cycle, Strobe, Pulse; boot, awake and sleep lighting
Through kernel asus-wmi
- ASUS ROG (USB Aura)Experimental
0b05:1854, 1866, 1869, 19b6, 1a30
RGB; Breathing, Color cycle, Wave, Pulse
Through built-in driver
- Lenovo Legion, LOQ and IdeaPad Gaming 4-zoneExperimental
048d:c955 to c995
4 zones; Breathing, Color cycle, Wave
Through built-in driver
- Clevo, Tongfang, XMG, Eluktronics and TUXEDO per-key (ITE 8291)Experimental
048d:6004, 6006, 600a, 600b, ce00
Per-key; 9 hardware effects
Through built-in driver
- TUXEDO, Clevo and Uniwill with tuxedo-driversSupported
1-zone, 3-zone or per-key; hardware modes
Through kernel, tuxedo-drivers
- System76Supported
RGB or white
Through kernel system76_acpi
- Dell G15 and G16, Alienware (AW-ELC)Experimental
187c:0550, 0551
4 zones; Breathing
Through built-in driver
- Older AlienwareSupported
Zones
Through kernel alienware-wmi
- HP Omen and VictusSupported
4 zones; animations
Through omen-rgb-keyboard or hp-omen module
- Acer Predator and NitroSupported
4 zones; effects
Through facer module
- MSI SteelSeries 3-zoneExperimental
1770:ff00
3 zones
Through built-in driver
- HID LampArray keyboards (Windows Dynamic Lighting)Experimental
Per-lamp
Through built-in driver
- ThinkPad, IdeaPad, Yoga, Dell, Apple, Framework, Chromebook, Samsung, LG gram, Toshiba, Sony, MSI (msi-ec), Bitland and moreSupported
White, with levels and firmware timeouts where available
Through kernel
- MSI per-key, Razer, Gigabyte and AORUS, Legion per-key and hundreds moreSupported
Whatever OpenRGB supports
Through OpenRGB SDK (openrgb --server)
Performance, fans and battery
ByteKeys only uses controls the laptop's firmware runs itself and never drives fan speeds directly, so a crash or a stopped service can never leave a fan off.
| Feature | Works on | Through |
|---|---|---|
| Performance modes | Laptops whose firmware offers an ACPI platform profile: ASUS, Lenovo, Dell, HP, Acer, Samsung, Huawei, System76, TUXEDO, ThinkPad and more | platform_profile, via power-profiles-daemon when it runs |
| Custom fan curves (8 points per fan, per mode) | ASUS laptops with firmware fan curves (most TUF and ROG since 2021) | asus-wmi asus_custom_fan_curve |
| Full fan speed | ASUS laptops with "SPEC 8.3" fans | asus-wmi |
| Battery charge limit | ASUS, ThinkPad, Dell, Huawei, LG, Samsung, MSI, System76, Toshiba, Fujitsu and others with a charge threshold; Lenovo IdeaPad and Legion conservation mode | charge_control_end_threshold, charge_types, conservation_mode |
| Temperatures and fan speeds | Everything with hwmon sensors; NVIDIA GPUs through nvidia-smi without waking the GPU | hwmon |
- Fan curves have 8 points per fan and one curve per performance mode. ByteKeys checks every curve: temperatures rise, speeds never drop, at least 50% from 80 °C and at least 70% at the last point.
- The kernel forgets custom curves on every performance mode change, at boot and after sleep. The service re-applies them and checks every second that they are still active.
- Charge limit presets are 60, 80 and 100% (80 and 100% on LG). On Dell, ByteKeys switches the charge type to Custom, the only mode in which the thresholds apply.
- The NVIDIA GPU temperature is read only while the GPU is awake, so monitoring never wakes it.
Launch keys
The key that opens the vendor's app on Windows opens ByteKeys. ByteKeys picks the key for your laptop; Settings → Launch key → Detect key learns any other special key, never letters, digits or modifiers.
| Laptop | Key | evdev code |
|---|---|---|
| ASUS TUF and ROG with WMI hotkeys (e.g. TUF F15 FX507) | Armoury Crate | KEY_PROG3 (202) |
| ASUS ROG and newer TUF with an N-KEY keyboard (hid-asus) | Armoury Crate / ROG | KEY_PROG1 (148) |
| ASUS Zenbook and Vivobook | MyASUS | KEY_PROG1 (148) |
| Acer Nitro and Predator | NitroSense / PredatorSense | KEY_PROG1 (148) |
| HP OMEN and Victus | OMEN | KEY_PROG2 (149) |
| MSI gaming | MSI Center | KEY_CONFIG (171) |
| MSI Modern and Prestige | Creation Center | KEY_PROG1 (148) |
| Samsung Galaxy Book | Samsung Settings (Fn+F1) | KEY_PROG1 (148) |
| Huawei MateBook | PC Manager | KEY_CONFIG (171) |
Keyboard not detected?
Find out how your keyboard's lighting is reachable, then open a Device support issue with the report. In the control center, Settings → Copy report gives you the same report.
bytekeys report # what ByteKeys sees: LEDs, HID devices, USB IDs, kernel modulesls /sys/class/leds/ # kernel LED devices (look for *kbd_backlight*)lsusb # USB lighting controllersWrite the driver
Adding a keyboard is usually one small driver class. If /sys/class/leds/ already has a kbd_backlight entry, ByteKeys most likely handles it. USB and I2C HID controllers get a driver in bytekeys/hw/drivers/, with a byte-exact test, and stay Experimental until someone confirms them on real hardware.
Built-in USB and HID drivers
These controllers are driven directly through /dev/hidraw. Animations are never written to keyboard memory; a settled look is saved only when you turn on saving to the keyboard.
| Controller | USB IDs | Writes keyboard memory |
|---|---|---|
| Lenovo 4-zone (ITE) | 048d:c955, c963, c965, c973, c975, c983, c984, c985, c993, c994, c995 | No save command |
| ITE 8291 rev 0.03 | 048d:6004, 6006, 600a, 600b, ce00 | Only when you save explicitly |
| ASUS ROG Aura | 0b05:1854, 1866, 1869, 19b6, 1a30 | Only when you save explicitly |
| Dell and Alienware AW-ELC | 187c:0550, 0551 | Never |
| MSI SteelSeries KLM | 1770:ff00 | No |
| HID LampArray | Usage page 0x59 | No |
Not built in, use OpenRGB: Lenovo per-key Spectrum, MSI per-key SteelSeries, Gigabyte and AORUS, Razer (or OpenRazer).
Kernel interfaces
Without the service, brightness still works for the active desktop user through systemd-logind; colors and modes need the service.
| Driver or module | LED or path | Notes |
|---|---|---|
| asus-wmi (TUF) | asus::kbd_backlight, kbd_rgb_mode, kbd_rgb_state | Brightness 0 to 3; static, breathing, color cycle, strobe and pulse. Use kernel 6.5 or later (not 6.10.0): 6.1 to 6.4 and 6.10 had bugs here. |
| thinkpad_acpi | tpacpi::kbd_backlight | Off, Low, High. |
| dell-laptop | dell::kbd_backlight, stop_timeout, als_enabled | Firmware timeout and the ambient light switch as device settings. |
| ideapad-laptop | platform::kbd_backlight | On and off, or Off, Low, High. |
| system76_acpi | system76_acpi::kbd_backlight, color | RGB or white. |
| tuxedo-drivers | rgb:kbd_backlight, white:kbd_backlight | Multicolor 3-zone and per-key, grouped into one keyboard, with hardware modes. |
| uniwill-laptop (7.3+) | uniwill:*:kbd_backlight | Uses multi_max_intensity. |
| applesmc, applespi, hid-apple, Asahi | smc::, spi::, apple::kbd_backlight | Default triggers are switched off when ByteKeys takes control. |
| cros_kbd_led_backlight | chromeos::kbd_backlight | Chromebooks and Framework 13. |
| samsung-galaxybook, samsung-laptop, toshiba_acpi, lg-laptop, msi-ec, bitland-mifs-wmi | various | LG gram maps to Off, Low, High. Toshiba exposes its mode and timeout. |
| sony-laptop | /sys/devices/platform/sony-laptop/kbd_backlight | Off, automatic or on, plus a timeout. |
| omen-rgb-keyboard, hp-omen-linux-module | …/rgb_zones/zone0N | HP Omen and Victus four zones; animations with omen-rgb-keyboard. |
| alienware-wmi (legacy) | /sys/devices/platform/alienware-wmi/rgb_zones | 4 bits per channel. |
| facer (Acer) | /dev/acer-gkbbl-0, /dev/acer-gkbbl-static-0 | Effects and static zones. |
Protocol details for every driver are in docs/SUPPORTED_HARDWARE.md.
Hardware questions
Can ByteKeys control laptop fans on Linux?
On ASUS laptops with firmware fan curves (most TUF and ROG since 2021) you can draw a curve for each fan and each performance mode, and ASUS laptops with SPEC 8.3 fans can run at full speed. ByteKeys only uses curves the firmware runs itself and never drives fan speeds directly. On other laptops it shows temperatures and fan speeds from hwmon.
Which laptops get performance modes?
Every laptop whose firmware offers an ACPI platform profile, including ASUS, Lenovo, Dell, HP, Acer, Samsung, Huawei, System76, TUXEDO and ThinkPad. ByteKeys switches them through power-profiles-daemon when it runs, so the desktop's power menu stays in sync.
Can it limit battery charging?
Yes, on laptops with a charge threshold (ASUS, ThinkPad, Dell, Huawei, LG, Samsung, MSI, System76, Toshiba, Fujitsu and others) and on Lenovo IdeaPad and Legion conservation mode. Presets are 60, 80 and 100%, or 80 and 100% on LG. ASUS resets the limit at every boot, so the service sets it again at start and after resume.
Does ByteKeys support Lenovo Legion keyboard RGB on Linux?
Yes for the 4-zone keyboards of Legion, LOQ and IdeaPad Gaming laptops (USB IDs 048d:c955 to c995), through a built-in driver with Breathing, Color cycle and Wave. It is marked Experimental until someone confirms it on their laptop. Legion per-key Spectrum keyboards work through OpenRGB.
Does it work with ASUS TUF and ROG laptops?
ASUS TUF Gaming keyboards work through the kernel's asus-wmi driver with RGB, Static, Breathing, Color cycle, Strobe and Pulse, and boot, awake and sleep lighting; this is tested on real hardware. Use kernel 6.5 or later, but not 6.10.0. ASUS ROG keyboards with a USB Aura controller have an Experimental built-in driver.
What about Clevo, Tongfang, XMG and TUXEDO laptops?
Per-key keyboards with an ITE 8291 controller have an Experimental built-in driver with 9 hardware effects. With tuxedo-drivers installed, TUXEDO, Clevo and Uniwill keyboards work through the kernel, 1-zone, 3-zone or per-key.
Does it support Dell G-series and Alienware?
Dell G15 and G16 and Alienware keyboards with the AW-ELC controller (187c:0550 and 0551) have an Experimental 4-zone driver with Breathing. Older Alienware laptops work through the kernel's alienware-wmi driver.
HP Omen, Victus and Acer Predator or Nitro?
Yes, with a kernel module: omen-rgb-keyboard or hp-omen for HP, four zones with animations; the facer module for Acer Predator and Nitro, four zones with effects. ByteKeys tells you which module is missing.
My laptop only has a white backlight. Does ByteKeys help?
Yes. White backlights on ThinkPad, IdeaPad, Yoga, Dell, Apple, Framework, Chromebook, Samsung, LG gram, Toshiba, Sony, MSI and more work through the kernel, with brightness levels and firmware timeouts where available, and the software effects work on them too.
What about Razer, Gigabyte, AORUS and MSI per-key keyboards?
Those go through OpenRGB. Run OpenRGB with its SDK server (openrgb --server) and ByteKeys controls whatever OpenRGB supports.