Need help? Try the specialised custom ChatGPT GPT: CmpInf - Support Chat
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.
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.
In our case, we use LibreHardwareMonitorLib, which — as far as I know — relies on the same (still unpatched) Ring0 driver. However, I believe the attack surface in this application is much smaller than with the System Monitor that ships with GG, since we do not run as admin by default and do not expose any interfaces to the outside.
Netherless be warned and try to avoid running this tool as administrator.
apex_oled.mp4
- Multiple pages with one or two sensors each
- Each page can have it's own display interval
- Customizable sensor prefix and suffix
- Icon support
- Runable as normal user
- Autostart support
As for now this project (out of this README) is fully generated with GitHub CoPilot, so please take it with a grain of salt and feel free to raise an issue or PR to make it a bit better.
- SteelSeries GG installed and running (consider to put it into autostart)
- Download the latest release of CmpInf and run it
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.
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 updatedGameSenseRetryIntervalMs
: Set the interval in milliseconds how often a reconnect will be attempted if the GameSense GG software is not availableGameSenseHeartbeatIntervalMs
: Set the interval in milliseconds how often a heartbeat will be sent to the GameSense GG software, when no sensor was updatedRunAsAdmin
: Set totrue
if you want to run the application as administrator
Pages:
DurationMs
: Set the duration in milliseconds how long a page should be displayedIconId
: 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 theavailable-sensors.json
file. It's the filter query to find the sensor in the LibreHardwareMonitorLibPrefix
: Set characters which will be displayed before the sensor valueSuffix
: Set characters which will be displayed after the sensor valueDecimalPlaces
: Set the number of decimal places which should be displayed for the sensor valueKeyInstance
: 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
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
- 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 - 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).
You can click on the Tray Icon or right-click it and select "Open" to open the log window and enable debug logs.
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.
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).
-
#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!
- LibreHardwareMonitorLib for sensor data <3
- Newtonsoft.Json for easy JSON handling <3
- SteelSeries GameSense SDK for easy API usage <3