947949bd13728aa50cbb280e0c4fe0eddf7d64fe
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
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
Releases
1
v1.0.0 — ASUS FA608 键盘背光控制
Latest
Languages
C
93.1%
Makefile
6.9%