
cargo-make⚠️ Use at your own risk, the developer is not responsible for any damages that may arise as a result of using this program.
Builds will be periodically uploaded to the releases tab.
You may also download pre-compiled versions from here (requires github account) by clicking the latest entry with a ✅ and going under the "artifacts" section.
All stock effects: Static, Breath, Smooth, LeftWave, RightWave.
Custom effects:
The best way to add a new effect is to directly edit the source code, as it allows the most flexibility. You can however also use the built-in feature to make basic effects.
json file with the following format:{
"effect_steps": [
{"rgb_array": [0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0], "step_type": "Set", "brightness": 1, "steps": 100, "delay_between_steps": 100, "sleep": 100},
{"rgb_array": [0, 100, 0, 0, 0, 200, 0, 0, 200, 200, 0, 0], "step_type": "Transition", "brightness": 1, "steps": 100, "delay_between_steps": 100, "sleep": 100}
],
"should_loop": true
}
[r,g,b,r,g,b...] format.Set or smoothly transition to them with Transition.1 (low) or 2 (high).effect_step (In ms).Note: By default, on Linux you will have to run the program with root privileges, however, you can remedy this by adding the following udev rule (in a path similar to /etc/udev/rules.d/99-kblight.rules):
SUBSYSTEM=="usb", ATTR{idVendor}=="048d", ATTR{idProduct}=="####", MODE="0666"
Where idProduct can be found in these tables:
| Year | Pro | Regular + Slim | LOQ |
|---|---|---|---|
| 2024 | c995 |
c994 |
c993 |
| 2023 | c985 |
c984 |
c983 |
| Year | Pro + Regular + Slim | Ideapad |
|---|---|---|
| 2022 | c975 |
c973 |
| 2021 | c965 |
c963 |
| 2020 | c955 |
And then reloading the rules:
sudo udevadm control --reload-rules && sudo udevadm trigger
Execute the file by double-clicking on it. You may pass extra startup options via the CLI by also specifying the --gui flag.
Configuration for this mode is saved by default on the folder the program was executed in a file called settings.json, you can override this location by setting the LEGION_KEYBOARD_CONFIG environment variable.
Usage:
legion-kb-rgb [OPTIONS] [SUBCOMMAND]
Examples:
legion-kb-rgb --help
legion-kb-rgb set -e Static -c 255,0,0,255,0,0,255,0,0,255,0,0
4 and brightness at highlegion-kb-rgb set -e SmoothWave -s 4 -b 2 -d Left
This program has been tested to work on:
sudo apt-get install -y libclang-dev libxcb-shm0-dev libusb-1.0-0-dev libx11-dev nasm libdbus-1-dev libudev-dev libxcb-randr0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libxi-dev libxtst-dev libpango1.0-dev libgtk-3-dev libxdo-dev libappindicator3-dev
cargo-makeWorks on both Windows and Linux.
cargo-makecargo install cargo-make
git clone https://github.com/4JX/L5P-Keyboard-RGB.git
cd L5P-Keyboard-RGB/
cargo make build-release
You'll need to set an environment variable called VCPKG_ROOT pointing to the directory where you downloaded and bootstrapped VCPKG.
Download the VCPKG dependencies
Windows:
vcpkg update && vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static
Linux:
vcpkg update && vcpkg install libvpx libyuv
git clone https://github.com/4JX/L5P-Keyboard-RGB.git
cd L5P-Keyboard-RGB/
cargo build --release
I cannot guarantee this solution will work for anyone but myself. That being said feel free to open an issue if you encounter any of these problems on the issues tab.
Thanks to legendk95#0574 (272711294338072577) over at discord for initially reverse engineering the way to talk to the keyboard.
$ claude mcp add L5P-Keyboard-RGB \
-- python -m otcore.mcp_server <graph>