This repository contains scripts and tools to control the RGB lighting on MSI SteelSeries keyboards (device ID 1770:FF00) on Ubuntu Linux systems.
- Prerequisites
- Installation
- Quick Start
- Usage
- Automatic Startup Configuration
- Troubleshooting
- Files Description
- Additional Resources
- Ubuntu Linux (tested on version 24.04, should work on other recent versions)
- MSI laptop with SteelSeries RGB keyboard (device ID 1770:FF00)
- User with sudo privileges
- Internet connection (for initial installation)
The msi-keyboard package is available in the official Ubuntu repositories. Install it using:
sudo apt update
sudo apt install msi-keyboardVerify that the installation was successful:
msi-keyboard --helpYou should see the help documentation for the msi-keyboard command.
If you haven't already, download or clone this repository:
git clone https://github.com/E1DIGITALPF/OpenRGB-msi-steelseries.git
cd OpenRGB-msi-steelseriesOr if you already have the files, navigate to the directory containing the scripts.
Make all the shell scripts executable:
chmod +x keyboard-*.sh color-selector.shThe easiest way to change your keyboard color is using the interactive selector:
./color-selector.shOr use one of the individual color scripts:
./keyboard-blue.sh # Set to blue
./keyboard-red.sh # Set to red
./keyboard-green.sh # Set to greenThis repository includes individual scripts for each available color. Each script sets the entire keyboard to a fixed color:
keyboard-red.sh- Redkeyboard-orange.sh- Orangekeyboard-yellow.sh- Yellowkeyboard-green.sh- Greenkeyboard-cyan.sh- Cyan/Skykeyboard-blue.sh- Bluekeyboard-purple.sh- Purplekeyboard-white.sh- Whitekeyboard-off.sh- Turn off keyboard lightskeyboard-rasta.sh- Rastafari colors (green, yellow, red) with breathing effect
Usage:
./keyboard-blue.shThe color-selector.sh script provides an interactive menu to choose colors:
./color-selector.shThis will display a numbered menu:
=== MSI Keyboard Color Selector ===
Select a color:
1. Red
2. Orange
3. Yellow
4. Green
5. Cyan/Sky
6. Blue
7. Purple
8. White
9. Off
10. Rastafari (breathing)
Simply enter the number corresponding to your desired color.
Note: The selected color configuration is automatically saved and will persist after system reboot. The script automatically updates the systemd service to apply your chosen color on startup.
You can also use the msi-keyboard command directly:
sudo msi-keyboard -m normal -c left,blue,high -c middle,blue,high -c right,blue,highsudo msi-keyboard -m normal -c left,red,high -c middle,green,high -c right,blue,highsudo msi-keyboard -m breathe -c left,purple,high -c middle,purple,high -c right,purple,highsudo msi-keyboard -m wave -c left,blue,high -c middle,blue,high -c right,blue,highnormal- Static lightinggaming- Gaming mode lightingbreathe- Breathing effect (pulsing lights)demo- Demonstration mode (cycles through colors)wave- Wave effect across keyboard
red,orange,yellow,green,sky(cyan),blue,purple,white,off
high,medium,low,light
Good news! All color scripts (keyboard-*.sh and color-selector.sh) automatically save your configuration and apply it on system startup. You don't need to manually configure anything.
When you run any color script or use the color selector, it will:
- Apply the color immediately
- Automatically update the systemd service with your chosen configuration
- Enable the service to run on startup
- Save the configuration so it persists after reboot
If you want to manually configure the service or use a custom command:
Create a service file:
sudo nano /etc/systemd/system/msi-keyboard.serviceAdd the following content (you can customize the colors and mode):
[Unit]
Description=MSI Keyboard RGB Service
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/msi-keyboard -m normal -c left,blue,high -c middle,blue,high -c right,blue,high
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable msi-keyboard.service
sudo systemctl start msi-keyboard.serviceCheck if the service is running:
sudo systemctl status msi-keyboard.service-
Check if you're using sudo: All msi-keyboard commands require sudo privileges.
-
Verify keyboard detection:
lsusb | grep -i msiYou should see:
Bus 001 Device 003: ID 1770:ff00 MSI steel series rgb keyboard -
Check hidraw device permissions:
ls -l /dev/hidraw*If permissions are restricted, add your user to the input group:
sudo usermod -a -G input $USERThen log out and log back in.
If you get a "resource busy" error, another application might be controlling the keyboard. Try:
- Killing any other RGB control applications
- Restarting your system
- Unplugging and replugging the keyboard (if external)
If you get "Permission denied" errors:
chmod +x keyboard-*.sh color-selector.shCheck the service status:
sudo systemctl status msi-keyboard.service
sudo journalctl -u msi-keyboard.servicekeyboard-*.sh- Individual color scripts for quick color changescolor-selector.sh- Interactive menu to select colorskeyboard-rasta.sh- Special Rastafari color pattern with breathing effect
msi_keyboard_rgb.py- Direct HID communication script (requires hidraw access)msi_keyboard_usb.py- USB direct communication script (experimental)
msi-keyboard.service- Systemd service file template for automatic startup
README.md- This file
- msi-keyboard package - Official Ubuntu package
- OpenRGB - Universal RGB lighting control application
- MSI Support - Official MSI support website
- E1DIGITAL - Developer website
This repository has been modified and enhanced by E1DIGITAL.
- Repository: https://github.com/E1DIGITALPF/OpenRGB-msi-steelseries
- Website: https://e1digital.vercel.app
- Modifications: Added color scripts, interactive selector, and comprehensive documentation
Original work based on the msi-keyboard package from Ubuntu repositories and OpenRGB project.
The scripts in this repository are provided as-is for educational and personal use. The msi-keyboard tool is open source software.
Feel free to submit issues, fork the repository, and create pull requests for any improvements.
- The scripts use the official
msi-keyboardpackage from Ubuntu repositories, which is the recommended method for controlling MSI SteelSeries keyboards on Linux. - The Python scripts (
msi_keyboard_rgb.pyandmsi_keyboard_usb.py) are alternative experimental methods and may not work on all systems. - Always use
sudowhen running msi-keyboard commands directly. - The keyboard has three zones: left, middle, and right, which can be controlled independently.