Skip to content

CmpInf - Replacement for SteelSeries System Monitor App

License

Notifications You must be signed in to change notification settings

TBSniller/cmpinf

Repository files navigation

CmpInf - Replacement for SteelSeries System Monitor App

Need help? Try the specialised custom ChatGPT GPT: CmpInf - Support Chat

What's this?

CmpInf?

CmpInf is an application designed to work with the SteelSeries GameSense GG software. It includes and uses LibreHardwareMonitorLib to retrieve system information such as CPU temperature and GPU usage. This data is then sent to the GameSense GG software, which displays the Computer Informations on the keyboard’s OLED display.

Why?

I noticed that one of the reasons I originally bought the keyboard has been removed. According to SteelSeries, they are addressing a security issue related to how the original System Monitor gathered system information.
We now depend on LibreHardwareMonitorLib v0.9.5, which ships the PawnIO kernel driver instead of the legacy WinRing0 component, so the vulnerability that SteelSeries has been patching no longer applies to this replacement. PawnIO is extra software and only needs to be installed if there is a need for CPU or motherboard sensors.

apex_oled.mp4

Features

  • Multiple pages with one or two sensors each
  • Each page can have it's own display interval
  • Customizable sensor prefix and suffix
  • Show capslock state
  • Icon support
  • Runable as normal user
  • Autostart support

How?

As for now this project (out of this README) is fully generated with GitHub CoPilot/Codex, so please take it with a grain of salt and feel free to raise an issue or PR to make it a bit better.

How to install

What do you need?

  • .NET 10
  • SteelSeries GG installed and running (consider to put it into autostart)
  • Download the latest release of CmpInf and run it
  • PawnIO optional for CPU and motherboard sensors

LibreHardwareMonitor driver

CmpInf uses LibreHardwareMonitorLib v0.9.5, which bundles PawnIO as the successor to the WinRing0 driver. PawnIO is the signed kernel component that LibreHardwareMonitor uses as additional sensor information source.

PawnIO requirement

PawnIO is required for some motherboard or CPU sensors that LibreHardwareMonitorLib alone does not expose. Without PawnIO, CmpInf falls back to its SafeUserMode (no-kernel) operating profile, which keeps GPU, storage, and network sensors running while omitting kernel-only sources such as motherboard and CPU controllers.
Be aware that PawnIO can influence cheat detection software like FaceIT: namazso/PawnIO.Setup #1

How to use

First start

The application will copy itself to %AppData%\CmpInf_SteelSeriesOledPcInfo and will ask you to create a shortcut on your desktop. After start you will see a small icon in your tray menu. In the AppData folder you will find a autogenerated available-sensors.json file, which contains all sensors that were found by LibreHardwareMonitorLib and can be used for your display.

Settings

You can open the settings by right-clicking the tray icon and selecting "Settings". Here you can open the settings.json and configure your sensors and refresh timings. You can also control how long a page will be displayed if you define more than one.
Global:

  • UpdateIntervalMs: Set the interval in milliseconds how often the sensors should be updated
  • GameSenseRetryIntervalMs: Set the interval in milliseconds how often a reconnect will be attempted if the GameSense GG software is not available
  • GameSenseHeartbeatIntervalMs: Set the interval in milliseconds how often a heartbeat will be sent to the GameSense GG software, when no sensor was updated
  • RunAsAdmin: Set to true if you want to run the application as administrator
  • ShowCapsLockIndicator: Set to true if you want the Caps Lock marker to display on the OLED.
  • CapsLockIndicatorTextLine1: Text that is prepended to line 1 when Caps Lock is active (default ). Stick to BMP-friendly glyphs so surrogate-pair emoji do not break the display.
  • CapsLockIndicatorTextLine2: Text that is prepended to line 2 when Caps Lock is active (default two spaces) to keep the second line aligned when the first line receives the marker.

Pages:

  • DurationMs: Set the duration in milliseconds how long a page should be displayed
  • IconId: Set the icon id of the page, which will be displayed on the OLED display

Sensors:

  • Name, Hardware, Type: Need to be exacty extracted from the available-sensors.json file. It's the filter query to find the sensor in the LibreHardwareMonitorLib
  • Prefix: Set characters which will be displayed before the sensor value
  • Suffix: Set characters which will be displayed after the sensor value
  • DecimalPlaces: Set the number of decimal places which should be displayed for the sensor value
  • KeyInstance: Set the key instance which will be used to display the sensor value on the OLED display. More internal value - it is used to identify the sensor in the GameSense GG software

Autostart

You can enable autostart by right-clicking the tray icon and selecting "Settings". Here you can enable the autostart option, which depending on the permission level will run in

  1. User mode: Creates a shortcut in your startup folder (%AppData%\Microsoft\Windows\Start Menu\Programs\Startup), so the application will be started automatically with user rights
  2. Admin mode: Creates a scheduled task which will start the application with administrator rights on every system start. This is required if you want to read sensors which require administrator rights (e.g. CPU temperature).

Logs

You can click on the Tray Icon or right-click it and select "Open" to open the log window and enable debug logs.

Uninstall

You can uninstall the application by right-clicking the tray icon and selecting "Uninstall" in settings. This will remove the application from your system and delete the AppData folder on the next reboot. If you have enabled autostart, it will also remove the shortcut or scheduled task.

Other

Troubleshooting

If you see a - as sensor value, it means that LibreHardwareMonitorLib was not able to read the sensor value. This can happen if administrator rights are required to read the sensor value. You can try to run the application as administrator (Right-click on the tray icon -> Settings -> Run as administrator).

Known issues

  • #2: The shipped configuration is made on an Intel System. If it's used on an AMD CPU system, a missleading warning is shown.

    Please use CmpInf - Support Chat to create a working configuration, or double check your settings file.

No more issues are known so far, if you find one, feel free to raise an issue!

Credits

Screenshots

IMG_7906 image
image

About

CmpInf - Replacement for SteelSeries System Monitor App

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages