6 stable releases

1.1.0 Sep 6, 2023
1.0.4 Sep 5, 2023
1.0.2 Oct 2, 2022
1.0.1 Sep 25, 2022

#554 in Hardware support

Download history 27/week @ 2024-02-12 4/week @ 2024-02-26 2/week @ 2024-03-11 99/week @ 2024-04-01

101 downloads per month

GPL-3.0+

20KB
406 lines

msi-klc

crates.io docs.rs

A tool/library that allows you to control the backlight of your MSI SteelSeries laptop keyboard.
Supports 3 regions, 8 predefined colors, RGB colors, and custom animations (CLI only).

Tested Devices

Linux

  • MSI GE60 2PE

Installation

Compiling

  • Requirements
    • Rust (cargo)
    • hidapi

Note: This project uses the libusb backend of hidapi as there are issues when using hidraw.

Manual compilation

git clone https://github.com/ErrorNoInternet/msi-klc
cd msi-klc
cargo build --release
sudo cp target/release/msi-klc /usr/local/bin

Using cargo

cargo install msi-klc

Usage

Make sure to run with root privileges (sudo) if you don't have the appropriate udev rules.

CLI

# make the entire keyboard blue
msi-klc set --color blue

# make the left side of the keyboard red
msi-klc set --color red --region left

# turn off all the LEDs on the keyboard
msi-klc off

# ...and turn them back on
msi-klc reset

# make the keyboard cyan
msi-klc set --color "#0fffaf" --mode rgb

# make only the left side cyan
msi-klc off && msi-klc set --color "#0fffaf" --mode rgb --region left

# load an animation
msi-klc load animations/breathe.txt

Library

use msi_klc::*;

fn main() {
    let mut keyboard = Keyboard::new().unwrap();
    
    // make the keyboard blue
    keyboard
        .set_color(&KeyboardLightData::new(
            &Region::All,
            &Color::Blue,
            &Brightness::Medium,
        ))
        .unwrap();
    keyboard
        .set_mode(&KeyboardModeData::new(&Mode::Normal))
        .unwrap();

    // set a custom RGB color on the right side of the keyboard
    keyboard
        .set_rgb_color(&KeyboardRGBLightData::new(
            &Region::Right,
            &(255, 80, 80),
        ))
        .unwrap();
}

Dependencies

~2–11MB
~86K SLoC