Skip to content
ByteKeys
Menu

Free and open source · Linux

Keyboard lighting, fans and performance modes for Linux laptops

The control center your laptop's vendor app never shipped for Linux. Detected and configured automatically.

Version 1.1.0 · October 17, 2026 · .deb and AppImage · GPL-3.0-or-later

The ByteKeys control center: CPU and GPU temperatures, fan speeds, performance modes, keyboard controls and the battery charge limit

For laptops whose lighting, fans and performance modes live in a Windows-only app

What it does

The whole laptop, one control center.

One control center

Live CPU and GPU temperatures, fan speeds and battery, the performance mode and the keyboard on a single screen, in a dark or light look.

Keyboard lighting for almost any laptop

White backlights, single-zone, multi-zone and per-key RGB, through the kernel, built-in drivers for common USB controllers, or OpenRGB.

Performance modes and fans

Switch Silent, Balanced and Performance in sync with your desktop's power settings, draw fan curves per mode on ASUS laptops, and run the fans at full speed.

Battery charge limit

Stop charging at 60 or 80 % on laptops with a charge threshold or conservation mode, and keep it set across reboots and sleep.

The launch key works

The key that opens Armoury Crate, NitroSense, OMEN Gaming Hub or MSI Center on Windows opens ByteKeys instead, even when it is closed.

Modes and effects

Static, Breathing, Color cycle, Wave, Strobe and more, with animated previews. The keyboard's own modes when it has them, software effects on every keyboard.

Zones and per-key color

Click or drag over keys in the live keyboard preview to color them, one zone or one key at a time.

Automations

When this happens, do that: dim on battery, turn off when idle, a night schedule, low battery and overheat warnings, a Caps Lock indicator.

Safe by design

A small root service does the hardware work and the control center runs as you. Fan curves are checked against safety limits, and keyboard memory writes are opt-in.

The control center

Six pages. Dark and light.

Temperatures, fan speeds and CPU load, the performance mode, quick keyboard controls (power, brightness, mode, color) and the battery with its charge limit.

ByteKeys Home page

Performance and fans

Quiet when you work. Full power when you play.

Switch Silent, Balanced and Performance in sync with your desktop's power settings. On ASUS laptops, draw a fan curve for each fan and each mode, or run the fans at full speed. Set a battery charge limit so a laptop that lives on its charger lasts longer.

The firmware runs the fans, never ByteKeysByteKeys only uses controls the laptop's firmware runs itself and never drives fan speeds directly, so a crash or a stopped service can't leave a fan off. Curves must keep the fans at 50% or more from 80 °C and end at 70% or more. The kernel forgets custom curves on mode changes, at boot and after sleep; the service keeps them active.
The ByteKeys Performance page: performance modes, a fan curve editor, fan speeds and battery care
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 key

The Armoury Crate key opens ByteKeys.

ByteKeys knows the key of your laptop and can learn any other special key in Settings. With the service running, the key brings ByteKeys to the front from anywhere. On GNOME and KDE Plasma it also adds a desktop shortcut, so the key starts ByteKeys when it is closed. The service watches only that one key.

LaptopKey
ASUS TUF and ROG with WMI hotkeys (e.g. TUF F15 FX507)Armoury Crate
ASUS ROG and newer TUF with an N-KEY keyboard (hid-asus)Armoury Crate / ROG
ASUS Zenbook and VivobookMyASUS
Acer Nitro and PredatorNitroSense / PredatorSense
HP OMEN and VictusOMEN
MSI gamingMSI Center
MSI Modern and PrestigeCreation Center
Samsung Galaxy BookSamsung Settings (Fn+F1)
Huawei MateBookPC Manager

Keyboard lighting

Effects on every keyboard.

One-click modes for the everyday looks: Static, Breathing, Color cycle, Wave and Strobe, with animated previews. Your keyboard's own hardware modes are used when it has them, and these software effects work on every keyboard, even plain white ones:

  • Breathing
  • Blink
  • Color cycle
  • Wave
  • Gradient
  • Starlight
  • Reactive typing
  • Candle
ByteKeys Lighting page with a 4-zone keyboard

Automation

When this happens, do that.

Automations apply top to bottom, and a manual change wins until the automation stops applying. Ready-made ones come with ByteKeys, all off until you turn them on:

  • Turn off when idleafter 2 minutes without input
  • Dim on batteryto 40%
  • Night modethe Night profile from 22:00 to 07:00
  • Low battery warninga red pulse below 15%
  • Caps Lock indicatorRGB keyboards
  • Overheat warningan orange pulse above 90 °C, RGB keyboards

When

  • Power source is on battery or plugged in
  • Battery is below a level
  • Time is between two times
  • No keyboard or mouse input for a while
  • Caps Lock is on
  • CPU is hotter than a temperature
  • CPU load is above a level
  • Room is darker than a light level

Do

  • Turn the lights off
  • Set brightness
  • Set color
  • Play an effect
  • Switch to profile
  • Flash as a warning
  • Color by CPU temperature
  • Color by battery level
  • Color by CPU load

Command line

Scripts and keyboard shortcuts.

Lighting, performance modes, fans and the charge limit are all one bytekeys command away. Bind bytekeys brightness up, bytekeys brightness down or bytekeys toggle to shortcuts for laptops whose Fn keys don't reach the backlight.

Every command
bytekeys status  # keyboards and their lightingbytekeys brightness 60  # or: up / downbytekeys mode breathing  # static, breathing, cycle, wave, strobebytekeys color "#ff8800"  # whole keyboardbytekeys color red green blue white  # one color per zonebytekeys profile apply Nightbytekeys perf performance  # quiet, balanced, performance...bytekeys fans  # temperatures, fan speeds and fan curvesbytekeys fans boost on  # full fan speedbytekeys charge-limit 80  # stop charging at 80 %bytekeys report  # diagnostics for bug reports

How it works

A small root service owns the hardware. Everything else runs as you.

Clients, as your user

  • Control center (bytekeys-gui)
  • Command line (bytekeys)
  • Tray icon
JSON over /run/bytekeys

bytekeysd, as root

Applies lighting, renders effects, runs automations, switches performance modes, keeps fan curves and the charge limit active, and restores everything after boot and resume.

firmware and drivers

Hardware

  • Kernel LED drivers (/sys/class/leds, WMI zones)
  • USB HID controllers (/dev/hidraw*)
  • Platform profile, hwmon fan curves, battery
  • OpenRGB SDK server (TCP 6742)

Supported keyboards

From plain white backlights to per-key RGB.

Full hardware list

Keyboard lights the kernel exposes (ASUS, ThinkPad, Dell, System76, TUXEDO, Clevo, Apple, Framework, Chromebooks, Samsung, LG, Toshiba, Sony), common USB controllers (Lenovo Legion 4-zone, ITE 8291 per-key, ASUS ROG Aura, Dell G-series and Alienware, MSI 3-zone, HID LampArray) and everything OpenRGB supports.

14 keyboard families: 1 tested, 7 supported and 6 experimental. See all of them.

Open source

Free software. Help it reach your laptop.

ByteKeys is released under the GPL-3.0-or-later and written in Python: the standard library only, plus Qt for the control center. The most valuable help is a hardware report, especially for keyboards marked Experimental. Adding a keyboard is usually one small driver class.

Questions

Frequently asked

Is ByteKeys free?

Yes. ByteKeys is free and open-source software, released under the GNU General Public License v3.0 or later. The source is on GitHub.

Is ByteKeys an Armoury Crate alternative for Linux?

On ASUS laptops it gives Linux keyboard lighting, performance modes, custom fan curves, full fan speed, a battery charge limit and live temperatures, and the Armoury Crate key opens it. It isn't made by ASUS and doesn't do everything Armoury Crate does. It also works on Acer, HP, MSI, Lenovo, Dell and other laptops, with the controls each one's firmware offers.

Which laptops does ByteKeys support?

Keyboard lighting works on laptops whose keyboard light the Linux kernel exposes (ThinkPad, Dell, ASUS, System76, TUXEDO, Apple, Framework, Chromebooks, Samsung, LG and more), on common USB controllers such as Lenovo Legion 4-zone, ITE 8291 per-key, ASUS ROG Aura and Dell G-series, and through OpenRGB. Performance modes need an ACPI platform profile, custom fan curves need an ASUS laptop with firmware fan curves.

Can ByteKeys break my fans?

It only uses controls the laptop's firmware runs itself and never drives fan speeds directly, so a crash or a stopped service can't leave a fan off. Curves must keep the fans at 50% or more from 80 °C and end at 70% or more.

Which Linux distributions does it run on?

The .deb package is for Debian, Ubuntu, Linux Mint, Pop!_OS and Zorin. The AppImage runs on any x86_64 distribution. From source it needs Python 3.10 or later and PyQt6 or PySide6.

Why does ByteKeys install a service?

Lighting, fans and battery settings need root. A small service, bytekeysd, does that work so the control center runs as your normal user. Without it, ByteKeys runs in portable mode: brightness still works for the active desktop user, but colors, fan control and background automations need the service.

Does ByteKeys record what I type?

No. For idle automations and the Reactive effect it notes when an input event happened, and the only key it ever looks at is your launch key. Key codes are never stored or logged.

Take control of your laptop.

A .deb for Debian and Ubuntu, an AppImage for every other distribution.