Skip to content

Izurii/Lenovo-Y720-KB-Led-Controller

Repository files navigation

Lenovo-Y720-KB-Led-Controller

Github releases (by asset) Dependency Status Donate

This software controls the backlight of Lenovo Legion Y720 Keyboard on Linux, as the Lenovo didn't make the drivers/software for Linux.

It works mostly the same as the Lenovo Nerve Center, including the global hotkey of Fn+Space to change between profiles created by the user and the hotkey that is located in the key 7 of the numpad this hotkey opens the software.

Here a screenshot:

Screenshot from 2021-04-09 14-41-02

How to install

Download the latest version here: Releases

You can use the AppImage to run just once the software using this in a terminal with the folder you downloaded the software open

./Lenovo Y720 Keyboard LED Controller-x.AppImage

Or you can install the deb packages using:

sudo dpkg -i y720-kb-led-controller-x.deb

How to grant access to Hidraw and Input device

Hidraw device is used for controlling the leds and the input device is used to detect the hotkey Fn+Space.

Create a file called /etc/udev/rules.d/99-any-name-you-want.rules and write this to the file

SUBSYSTEM=="hidraw", ATTRS{name}=="ITE33D1:00", MODE="0666"
SUBSYSTEM=="input", ATTRS{name}=="*Keyboard*", MODE="0666"

Reboot your PC or use this command to reload and trigger the new udev rules sudo udevadm control --reload-rules && sudo udevadm trigger

DEV

Recommendations

  • VSCode with the extensions listed below
    • Better C++ Syntax
    • Better Shell Syntax
    • C/C++ Extension Pack by Microsoft
    • CodeLLDB (to debug things if you know what you're doing)
    • EditorConfig for VS Code
    • Shell Script Command Completion
    • ShellCheck (if you want to use this extension follow their guide on how to install it)
  • Patience

Requirements to build or start the dev version

  • GCC/G++
  • yarn
  • libevdev (the needed files are already in the ./libs/hotkey/libs folder, but you never know ¯_(ツ)_/¯ )
  • node-gyp (I do recommend to globally install it using either npm install -g node-gyp or yarn global add node-gyp)

How to build it yourself

  1. First clone the repo
git clone https://github.com/Izurii/Lenovo-Y720-KB-Led-Controller
  1. Build
yarn build

How to start the software using yarn

yarn start

Good to know

  • Both scripts (build and start) has a lot of things behind doing all the dirty work.
  • yarn run build or yarn build do these actions:
    • As soon as you run the command, yarn will trigger the "prebuild" script, the prebuild script is going to run the sh file ./scripts/prebuild_start.sh. This shell script is going to run all the things needed to build the application, take a look at the script and see what it does.
    • The same logic applies to yarn run start it runs the file ./scripts/prebuild_start.sh
  • You can take a look at the README inside the folder ./scripts if you want more details in what those scripts is doing.
  • I wrote some details how the addons I built for the app works