Skip to content
ByteKeys
Menu

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

Keyboard lighting

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.

FeatureWorks onThrough
Performance modesLaptops whose firmware offers an ACPI platform profile: ASUS, Lenovo, Dell, HP, Acer, Samsung, Huawei, System76, TUXEDO, ThinkPad and moreplatform_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 speedASUS laptops with "SPEC 8.3" fansasus-wmi
Battery charge limitASUS, ThinkPad, Dell, Huawei, LG, Samsung, MSI, System76, Toshiba, Fujitsu and others with a charge threshold; Lenovo IdeaPad and Legion conservation modecharge_control_end_threshold, charge_types, conservation_mode
Temperatures and fan speedsEverything with hwmon sensors; NVIDIA GPUs through nvidia-smi without waking the GPUhwmon

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.

LaptopKeyevdev code
ASUS TUF and ROG with WMI hotkeys (e.g. TUF F15 FX507)Armoury CrateKEY_PROG3 (202)
ASUS ROG and newer TUF with an N-KEY keyboard (hid-asus)Armoury Crate / ROGKEY_PROG1 (148)
ASUS Zenbook and VivobookMyASUSKEY_PROG1 (148)
Acer Nitro and PredatorNitroSense / PredatorSenseKEY_PROG1 (148)
HP OMEN and VictusOMENKEY_PROG2 (149)
MSI gamingMSI CenterKEY_CONFIG (171)
MSI Modern and PrestigeCreation CenterKEY_PROG1 (148)
Samsung Galaxy BookSamsung Settings (Fn+F1)KEY_PROG1 (148)
Huawei MateBookPC ManagerKEY_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 controllers

Write 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.

Read the driver guide

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.

ControllerUSB IDsWrites keyboard memory
Lenovo 4-zone (ITE)048d:c955, c963, c965, c973, c975, c983, c984, c985, c993, c994, c995No save command
ITE 8291 rev 0.03048d:6004, 6006, 600a, 600b, ce00Only when you save explicitly
ASUS ROG Aura0b05:1854, 1866, 1869, 19b6, 1a30Only when you save explicitly
Dell and Alienware AW-ELC187c:0550, 0551Never
MSI SteelSeries KLM1770:ff00No
HID LampArrayUsage page 0x59No

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 moduleLED or pathNotes
asus-wmi (TUF)asus::kbd_backlight, kbd_rgb_mode, kbd_rgb_stateBrightness 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_acpitpacpi::kbd_backlightOff, Low, High.
dell-laptopdell::kbd_backlight, stop_timeout, als_enabledFirmware timeout and the ambient light switch as device settings.
ideapad-laptopplatform::kbd_backlightOn and off, or Off, Low, High.
system76_acpisystem76_acpi::kbd_backlight, colorRGB or white.
tuxedo-driversrgb:kbd_backlight, white:kbd_backlightMulticolor 3-zone and per-key, grouped into one keyboard, with hardware modes.
uniwill-laptop (7.3+)uniwill:*:kbd_backlightUses multi_max_intensity.
applesmc, applespi, hid-apple, Asahismc::, spi::, apple::kbd_backlightDefault triggers are switched off when ByteKeys takes control.
cros_kbd_led_backlightchromeos::kbd_backlightChromebooks and Framework 13.
samsung-galaxybook, samsung-laptop, toshiba_acpi, lg-laptop, msi-ec, bitland-mifs-wmivariousLG gram maps to Off, Low, High. Toshiba exposes its mode and timeout.
sony-laptop/sys/devices/platform/sony-laptop/kbd_backlightOff, automatic or on, plus a timeout.
omen-rgb-keyboard, hp-omen-linux-module…/rgb_zones/zone0NHP Omen and Victus four zones; animations with omen-rgb-keyboard.
alienware-wmi (legacy)/sys/devices/platform/alienware-wmi/rgb_zones4 bits per channel.
facer (Acer)/dev/acer-gkbbl-0, /dev/acer-gkbbl-static-0Effects 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.

Download ByteKeys