This util allows to drive RGB keyboard light on Lenovo Legion 5 Pro 16iah7h Laptop
- pyusb
git clone https://github.com/imShara/l5p-kbl
nix-shell --command ./lightblue.py
git clone https://github.com/imShara/l5p-kbl
cd l5p-kbl
python3 -m venv env
source ./env/bin/activate
pip install -r requirements.txt
python3 l5p-kbl.py --help
sudo pacman -Sy python-pyusb
git clone https://github.com/imShara/l5p-kbl
cd l5p-kbl
python l5p-kbl.py --help
Add udev rule if you want to swith light as unprivileged user
# /etc/udev/rules.d/99-kblight.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="048d", ATTR{idProduct}=="c975", MODE="0666"
or when using NixOS, in your configuration:
services.udev.extraRules = ''
SUBSYSTEM=="usb", ATTR{idVendor}=="048d", ATTR{idProduct}=="c975", MODE="0666"
'';
Reload rules
sudo udevadm control --reload-rules && sudo udevadm trigger
I'ts possible to set color for 4 sections of keyboard separately like COLOR COLOR COLOR COLOR
, but you can set single color for whole keyboard with just COLOR
. Last color will be repeated for other sections.
HEX colors should be 6-digit base 16 input like ffffff
RGB colors should be 0-255 decimal values for each component, separated by comma like 255,0,127
HSV colors should be 0.0-1.0 float values for hue, saturation, value, separated by comma like 0.0,1.0,0.25
Static color
usage: l5p_kbl.py static [-h] [--brightness {1,2}] colors [colors ...]
positional arguments:
colors Colors of sections
optional arguments:
-h, --help show this help message and exit
--brightness {1,2} Light brightness
Turn 100% red
./l5p_kbl.py static ff0000
At full brightness, turn 100% red for 1 section, 100% green for 2 section, 100% blue for 3 section an 100% white for 4 section
./l5p_kbl.py static ff0000 00ff00 0000ff ffffff --brightness 2
Dimmed warm orange like wire heater. With HSV color input.
./l5p_kbl.py static 0.02,1,0.2
Fade light in and out
usage: l5p_kbl.py breath [-h] [--brightness {1,2}] [--speed {1,2,3,4}] colors [colors ...]
positional arguments:
colors Colors of sections
optional arguments:
-h, --help show this help message and exit
--brightness {1,2} Light brightness
--speed {1,2,3,4} Animation speed
Fast white blink at full brightness
./l5p_kbl.py breath ffffff --speed 4 --brightness 2
Transition across hue circle. You can't set custom colors here.
usage: l5p_kbl.py hue [-h] [--brightness {1,2}] [--speed {1,2,3,4}]
optional arguments:
-h, --help show this help message and exit
--brightness {1,2} Light brightness
--speed {1,2,3,4} Animation speed
Rotate HUE slowly
./l5p_kbl.py hue --speed 1
Rainbow wawe effect. Wow. Cool. Useles.
usage: l5p_kbl.py wave [-h] [--brightness {1,2}] [--speed {1,2,3,4}] {ltr,rtl}
positional arguments:
{ltr,rtl} Direction of wave
optional arguments:
-h, --help show this help message and exit
--brightness {1,2} Light brightness
--speed {1,2,3,4} Animation speed
Wheeee, left to right
./l5p_kbl.py wave ltr
Pew-pew-pew, right to left
./l5p_kbl.py wave rtl --speed 4
Turn light off. Nuff said.
usage: l5p_kbl.py off [-h]
optional arguments:
-h, --help show this help message and exit
Set Super+Space
keystroke to turn light on and turn it off with single fn+Space
press
- Minimum viable product
- HSV color input
- Create setupscript
- Create Archlinux AUR package
- Advanced usage:
- Swithc light depend on keyboard layout
- Switch light depend on terminal rights
- Music light accompaniment
Device vendor = 048d, product = c975
HEADER ........... cc
HEADER ........... 16
EFFECT ........... 01 - static / 03 - breath / 04 - wave / 06 - hue
SPEED ............ 01 / 02 / 03 / 04
BRIGHTNESS ....... 01 / 02
RED SECTION 1 .... 00-ff
GREEN SECTION 1 .. 00-ff
BLUE SECTION 1 ... 00-ff
RED SECTION 2 .... 00-ff
GREEN SECTION 2 .. 00-ff
BLUE SECTION 2 ... 00-ff
RED SECTION 3 .... 00-ff
GREEN SECTION 3 .. 00-ff
BLUE SECTION 3 ... 00-ff
RED SECTION 4 .... 00-ff
GREEN SECTION 4 .. 00-ff
BLUE SECTION 4 ... 00-ff
UNUSED ........... 00
WAVE MODE RTL .... 00 / 01
WAVE MODE LTR .... 00 / 01
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00
UNUSED ........... 00