lou 947949bd13 Initial: kbd — ASUS TUF FA608 keyboard backlight CLI
Single C binary controlling ITE51368 (0B05:19B6) keyboard backlight.
- HID feature report [0x46,0x01] switches to EC mode
- Brightness control via sysfs asus::kbd_backlight
- RGB effects via sysfs kbd_rgb_mode (6 params: cmd mode R G B speed)
- systemd service for boot-time EC mode init
2026-06-27 15:36:58 +08:00

kbd

ASUS TUF Gaming A16 FA608 keyboard backlight CLI.

Single C binary — no runtime dependencies beyond libhidapi.

Why

The FA608 uses an ITE51368 keyboard controller over I2C HID (0B05:19B6). On Linux this device defaults to Windows Dynamic Lighting mode after boot, which ignores all WMI/sysfs backlight commands.

This tool sends the HID feature report [0x46, 0x01] to switch it to Embedded Controller mode, then controls brightness and RGB effects through the standard asus::kbd_backlight sysfs interface.

Build

sudo apt install libhidapi-dev   # Debian/Ubuntu
make
sudo make install                # → /usr/local/bin/kbd

Usage

kbd init                    # switch ITE51368 to EC mode (first boot)
kbd on|off|toggle           # brightness
kbd 0-3                     # set brightness level
kbd color ff6600            # static orange
kbd color ffffff            # static white
kbd breathe 00ff00 2        # green breathing (speed 0-2)
kbd rainbow 1               # rainbow cycle (speed 0-2)
kbd mode 10 ff8800 2        # custom mode 10 (pulse)

Modes: 0=Static, 1=Breathe, 2=RainbowCycle, 3=RainbowWave, 4=Star, 5=Rain, 6=Highlight, 7=Laser, 8=Ripple, 10=Pulse, 11=Comet

Auto-start

Install the systemd service to run kbd init at boot:

sudo cp kbd-init.service /etc/systemd/system/
sudo systemctl enable --now kbd-init.service

Udev rule (avoid sudo)

# /etc/udev/rules.d/99-kbd.rules
KERNEL=="hidraw*", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="19b6", MODE="0666"

License

MIT

S
Description
No description provided
Readme MIT 51 KiB
2026-06-27 16:03:27 +08:00
Languages
C 93.1%
Makefile 6.9%