msi-klc

Crates.iomsi-klc
lib.rsmsi-klc
version1.1.0
sourcesrc
created_at2022-09-25 13:38:58.913309
updated_at2023-09-06 09:14:18.504887
descriptionMSI Keyboard Light Controller
homepagehttps://github.com/ErrorNoInternet/msi-klc
repositoryhttps://github.com/ErrorNoInternet/msi-klc
max_upload_size
id673607
size59,909
Ryan (ErrorNoInternet)

documentation

README

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();
}
Commit count: 75

cargo fmt