SteelSeries Sensei TEN

Supported Models

SteelSeries Sensei TEN


SteelSeries Sensei TEN CS:GO Neon Rider Edition


Command-Line Usage

usage: rivalcfg [-h] [--list] [--version] [--no-save] [--update-udev]
                [--print-udev] [--print-debug] [-s SENSITIVITY]
                [-p POLLING_RATE] [-c LOGO_COLOR] [-C WHEEL_COLOR]
                [-b BUTTONS_MAPPING] [-r] [--firmware-version]

optional arguments:
  -h, --help            show this help message and exit
  --list                List supported devices and exit
  --version             show program's version number and exit
  --no-save             Do not persist settings in the internal device memory
  --update-udev         Updates udev rules (Linux only, requires to be run as
  --print-udev          Prints udev rules and exit
  --print-debug         Prints debug informations and exit

SteelSeries Sensei TEN Options:
                        Set sensitivity preset (DPI) (up to 5 settings, from
                        50 dpi to 18000 dpi, default: '400, 800, 1200, 2400,
  -p POLLING_RATE, --polling-rate POLLING_RATE
                        Set polling rate (Hz) (values: 125, 250, 500, 1000,
                        default: 1000)
  -c LOGO_COLOR, --logo-color LOGO_COLOR
                        Set the colors and the effects of the logo LED
                        (default: rgbgradient(duration=10000; colors=0%:
                        #ff0000, 33%: #00ff00, 66%: #0000ff))
  -C WHEEL_COLOR, --wheel-color WHEEL_COLOR
                        Set the colors and the effects of the wheel LED
                        (default: rgbgradient(duration=10000; colors=0%:
                        #ff0000, 33%: #00ff00, 66%: #0000ff))
                        Set the mapping of the buttons (default:
                        buttons(button1=button1; button2=button2;
                        button3=button3; button4=button4; button5=button5;
                        button6=PageDown; button7=PageUp; button8=dpi;
  -r, --reset           Reset all settings to their factory default
  --firmware-version    Print the firmware version of the mouse and exit

Please report any bug on Github:


This mouse supports colors. Various formats are supported.

Hexadecimal notation

You can use a 24 bit hexadecimal notation (like in HTML / CSS documents). Example of “red” color using hexadecimal notation:

  • #FF0000

  • FF0000

  • #F00

  • F00

Named Colors

The folowing named colors are supported:

















RGB Tuple (Python API only)

If you are using the Python API (not the command line interface), you can also pass colors as RGB tuple or list:

  • (255, 0, 0)

  • [255, 0, 0]

RGB Gradients

This mouse supports RGB Gradient. In addition of static colors, you can configure a gradient. The color of the mouse will change according to the colors of the gradient.

RGB Gradient expression

The RGB Gradient follows this format:

rgbgradient(duration=<DURATION>; colors=<POS1>: <COLOR1>, <POSN>: COLORN>)
  • duration: the time in miliseconds of the color loop. This parameter is optional. Default value: 1000 (1 second).

  • colors: the colors of the gradient.

    • The <POS> parameters are the position of the color stops (e.g. 0%, 50%,…).

    • The <COLOR> parameters are the colors in any suported format (se above).


A maximum of 14 color are supported in a RGB Gradient.

Example Gradients

rgbgradient(duration=5000; colors=0%: red, 33%: lime, 66%: blue)
rgbgradient(duration=5000; colors=0%: #e90cce, 33%: #ffe701, 66%: #01cafe)
rgbgradient(duration=1000; colors=0%: #ff1800, 50%: #fde700)
rgbgradient(duration=1000; colors=0%: #3acbe8, 50%: #8706fe)
rgbgradient(duration=15000; colors=0%: black, 8%: red, 16%: black, 24%: yellow, 32%: black, 40%: lime, 48%: black, 56%: aqua, 64%: black, 72%: blue, 80%: black, 88%: fuchsia)

RGB Gradient Dict (Python API only)

If you are using the Python API (not the command line interface), you can also pass a Python dict to define a gradient.


    "duration": 5000,  # ms
    "colors": [
        {"pos": 0, "color": "red"},
        {"pos": 33, "color": "#00FF00"},
        {"pos": 66, "color": (0, 0, 255)},


Sensei TEN buttons schema

This mouse supports buttons mapping. Buttons can be mapped with:

  • some special actions,

  • mouse buttons,

  • multimedia keys,

  • and keyboard keys.

The general syntax for buttons mapping is the following:

buttons(layout=<LAYOUT>; button1=<mapping1>; buttonN=<mappingN>)


rivalcfg --buttons "buttons(layout=QWERTY; button1=button1; button2=PlayPause; button3=disabled; button5=A; button6=DPI)"


  • layout: The keyboard layout to use when papping the keys (see the “Mapping Keyboard Keys” section bellow).

  • button1: The first button of the mouse.

  • button2: The second button of the mouse.

  • buttonN: The Nth button of the mouse (The number of available buttons depends of the mouse model).


All parameters are optional. If you do not define a mapping for a specific button, it will be reset to its default value.

You can also reset all buttons to their factory default by passing "default" as parameter:

rivalcfg --buttons default


Be sure to map the mouse button button1 on some button, else you will not be able to click with the mouse!

Mapping Special Actions

The following special actions are available¹:

  • disabled: disable the button,

  • dpi: use this button to switch between DPI presets,

  • ScrollUp: simulate a scroll up (not available on all devices¹)

  • ScrollDown: simulate a scroll down (not available on all devices¹)


buttons(button4=disabled; button5=disabled; button6=DPI)


¹ The ScrollUp and ScrollDown actions are not available on all devices.

  • Rival 300 / Rival: OK

  • Sensei [RAW]: Not supported

Mapping Mouse Buttons

Mouse buttons can be mapped to any other mouse button.

For example, this swap the button 1 and 2 of the mouse:

buttons(button1=button2; button2=button1)

Mapping Multimedia Keys

Mouse buttons can be mapped to multimedia keys. The following keys are available:

  • Mute: turn off the sound

  • Next: play next media

  • PlayPause: toggle play / pause on the currently playing media

  • Previous: play the previous media

  • VolumeUp: increase the volume

  • VolumeDown: decrease the volume


buttons(button4=VolumeDown; button5=VolumeUp)

Mapping Keyboard Keys

Mouse buttons can be mapped to any keyboard keys, using different layouts.

To select the desired layout, just use the layout parameter. If this parameter is not specified, the QWERTY layout will be used by default.

Available layouts:

The available keys depends on the selected layout.


buttons(layout=QWERTY; button7=PageDown; button8=PageUp)


Some caracters like ; or = cannot be used as key identified as they interfer with the buttons() syntax. For those keys, use one of the available aliases, like semicolon (instead of ;) or equal (instead of =).


buttons(button4=semicolon; button5=equal)

Python API