SteelSeries-CKL-App
This app provides a GUI to send custom RGB lighting effects to SteelSeries keyboards via Python and the GameSense SDK. (by slattery-mark)
gamesense-sdk
By SteelSeries
SteelSeries-CKL-App | gamesense-sdk | |
---|---|---|
1 | 12 | |
5 | 460 | |
- | 1.7% | |
0.0 | 3.1 | |
over 2 years ago | 3 months ago | |
Python | ||
- | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SteelSeries-CKL-App
Posts with mentions or reviews of SteelSeries-CKL-App.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-07-15.
-
Custom Keyboard Lighting App (Python)
I wrote a simple little app so that you can write your own lighting effects with Python and send them to the GameSense API via a gui. I wanted to make something that would give people a way to interact with the API without having to go through and understand all the GameSense SDK documentation. All you'll need is Engine, Python, and 2 additional Python packages. You can download the app from my GitHub, the full instructions are in the readme (it's simple).
gamesense-sdk
Posts with mentions or reviews of gamesense-sdk.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-07-15.
-
ASUS ever plan to release an OLED SDK for the Azoth (and other) keyboard?
eg: SteelSeries GameSenseSDK: https://github.com/SteelSeries/gamesense-sdk
-
Reactive RGB keyboard
https://github.com/SteelSeries/gamesense-sdk you can read this to get further info
-
Steelseries Actuation...
SteelSeries Engine is closed source so you can't really know what data is being stored or what data isn't so I recommend instead of using a kind of program or injecting some kind of dll in it I'd recommend you check out this page which is for SteelSeries Engine Application( plugin more likely but thats what they call it ) and this github page which even has a documentation in it which I didn't read cuz I don't need it so I dont know if its really gonna help about the actuation thing but even if not, it's still gonna help you get an idea about how to do it for sure. Though if you don't know how to code, this is probably gonna be a pain so I recommend u learn how to code before doing this.
-
Just wrote a little background program, which shows the battery percentage of my Galaxy S10. Refreshes everytime the battery level changes on the phone while it's at home.
Of course! But you need to program something yourself. There are official documentations from SteelSeries, how to send things to the OLED screen: https://github.com/SteelSeries/gamesense-sdk . I wrote my program in Python, but you can use any language as it's just posting JSONs via HTTP. This was the part which just involved a little reading and trying.
-
Need help with Gamesense SDK
Hello, I'm looking at the documentation and I need someone to clear up some stuff for me. Firstly, where do I need to write code similar to this: gamesense-sdk/json-handlers-color.md at master · SteelSeries/gamesense-sdk · GitHub ? Secondly, is my entire app going to work by opening an HTML file with everything in it? And lastly, I can't quite understand how does my code connect to the Steelseries software. Thanks in advance!
-
Custom Keyboard Lighting App (Python)
I wrote a simple little app so that you can write your own lighting effects with Python and send them to the GameSense API via a gui. I wanted to make something that would give people a way to interact with the API without having to go through and understand all the GameSense SDK documentation. All you'll need is Engine, Python, and 2 additional Python packages. You can download the app from my GitHub, the full instructions are in the readme (it's simple).
-
Live updating OLED Screen
It can indeed be done, the documentation is here: https://github.com/SteelSeries/gamesense-sdk
-
Using numpad keys as bar graphs for temperatures and load
import time import wmi import requests import json import os # This script depends on OpenHardwareMonitor (running). It is free and can be configured # to run at Windows start. # The SteelSeries gamesense-sdk documents can be found at https://github.com/SteelSeries/gamesense-sdk. # define the sensors to monitor and key mappings # The SENSORS_KEY_MAPPING dictionary uses the format "Sensor.Name|Sensor.SensorType". The examples # given should make the format clear. This defines what sensors should be read, and which keys # should be used to display the colour gradient. # # min_value: required integer value indicating the minimum expected value from sensor # max_value: required integer value indicating the maximum expected value from sensor # The difference between the min and max values map the value from the sensor to a guage value # between 0 and 100. # keymap: required dictionary that defines event names for gamesense-sdk, using format: # "eventname": [key_weight, key_definition, keys] # The eventname must consist of only uppercase and numbers. # The key_weight is an integer defining how much of the 0-100 scale is represented by the # key. For example, if you are using 4 equally sized keys to show the sensor value, the key_weight # would be 25 for all for eventnames (25 x 4 = 100). # The key_definition and keys values can take one of two formats. # 1) "custom-zone-keys": [keynum] # 2) "zone":"named_key_zone" # The "custom-zone-keys" are drawn from https://www.usb.org/document-library/hid-usage-tables-112, but can be # found in the included keymapping_values.txt (more reliable than named key zones). In this form, [keynum] # is an array, so you could specify multiple keys [x, y, z] or just one key [x]. # Named key zones are easier to "figure out" when reading the code, but I found they don't always match # up with the keys on the MSI Leopard GL65. Other models might work better. The named key zones can be # found at https://github.com/SteelSeries/gamesense-sdk/blob/master/doc/api/standard-zones.md. # low_colour: required value from "red", "blue", "green", and "white" # high_colour: required value from "red", "blue", "green", and "white" SENSORS_KEY_MAPPING = { "GPU Core|Temperature": { "min_value": 35, "max_value": 90, "keymap": { "GPUTEMP0": [17, "custom-zone-keys", [79]], "GPUTEMP1": [17, "custom-zone-keys", [89]], "GPUTEMP2": [16, "custom-zone-keys", [92]], "GPUTEMP3": [17, "custom-zone-keys", [95]], "GPUTEMP4": [17, "custom-zone-keys", [83]], "GPUTEMP5": [16, "custom-zone-keys", [73]] }, "low_colour":"green", "high_colour":"red" }, "GPU Core|Load": { "min_value": 0, "max_value": 100, "keymap": { "GPULOAD0": [17, "custom-zone-keys", [98]], "GPULOAD1": [17, "custom-zone-keys", [90]], "GPULOAD2": [16, "custom-zone-keys", [93]], "GPULOAD3": [17, "custom-zone-keys", [96]], "GPULOAD4": [17, "custom-zone-keys", [84]], "GPULOAD5": [16, "custom-zone-keys", [76]] }, "low_colour":"green", "high_colour":"red" }, "CPU Package|Temperature": { "min_value": 35, "max_value": 95, "keymap": { "CPUTEMP0": [17, "custom-zone-keys", [99]], "CPUTEMP1": [17, "custom-zone-keys", [91]], "CPUTEMP2": [16, "custom-zone-keys", [94]], "CPUTEMP3": [17, "custom-zone-keys", [97]], "CPUTEMP4": [17, "custom-zone-keys", [85]], "CPUTEMP5": [16, "custom-zone-keys", [75]] }, "low_colour":"blue", "high_colour":"red" }, "CPU Total|Load": { "min_value": 0, "max_value": 100, "keymap": { "CPULOAD0": [33, "custom-zone-keys", [88]], "CPULOAD1": [34, "custom-zone-keys", [87]], "CPULOAD2": [16, "custom-zone-keys", [86]], "CPULOAD3": [17, "custom-zone-keys", [78]], }, "low_colour":"blue", "high_colour":"red" }, } # define sleep duration between sensor checks sleepy_time = 3 # always posting JSON headers = {"Content-Type":"application/json"} # JSON colour configurations guage_colour = { "red": {"red":255,"green":0,"blue":0}, "green": {"red":0,"green":255,"blue":0}, "blue": {"red":0,"green":0,"blue":255}, "white": {"red":255,"green":255,"blue":255} } # Need to discover address:port from %ProgramData%\SteelSeries\SteelSeries Engine 3\coreProps.json programdata = os.getenv('PROGRAMDATA') with open(programdata + '\SteelSeries\SteelSeries Engine 3\coreProps.json') as SSEcoreProps: coreProps = json.load(SSEcoreProps) # De-register the game to clear out all events json_to_post = {"game": "HWMONITOR"} r = requests.post('http://' + coreProps['address'] + '/remove_game', json=json_to_post, headers=headers) #print(r) # Register the app with SteelSeries json_to_post = {"game": "HWMONITOR","game_display_name": "RGB HW Monitor","developer": "Kyle J Tuck"} r = requests.post('http://' + coreProps['address'] + '/game_metadata', json=json_to_post, headers=headers) #print(r) # Register the event handlers # https://github.com/SteelSeries/gamesense-sdk/blob/master/doc/api/writing-handlers-in-json.md for sensor in SENSORS_KEY_MAPPING: for event_name in SENSORS_KEY_MAPPING[sensor]['keymap']: json_to_post = {"game": "HWMONITOR", "event":event_name, "handlers":[ {"device-type":"rgb-per-key-zones", SENSORS_KEY_MAPPING[sensor]['keymap'][event_name][1]:SENSORS_KEY_MAPPING[sensor]['keymap'][event_name][2], "mode":"color", "color":{ "gradient":{ "zero": guage_colour[SENSORS_KEY_MAPPING[sensor]["low_colour"]], "hundred": guage_colour[SENSORS_KEY_MAPPING[sensor]["high_colour"]] } } }] } r = requests.post('http://' + coreProps['address'] + '/bind_game_event', json=json_to_post, headers=headers) # reset the key colour json_to_post = {"game":"HWMONITOR", "event":event_name, "data": {"value":100} } r = requests.post('http://' + coreProps['address'] + '/bind_game_event', json=json_to_post, headers=headers) json_to_post = {"game":"HWMONITOR", "event":event_name, "data": {"value":0} } r = requests.post('http://' + coreProps['address'] + '/bind_game_event', json=json_to_post, headers=headers) # print(r) # print(json_to_post) # #r = requests.post('http://' + coreProps['address'] + '/supports_multiple_game_events') # #print(r) # read the sensors while True: w = wmi.WMI(namespace="root\OpenHardwareMonitor") temperature_data = w.Sensor() for sensor in temperature_data: full_sensor_name = sensor.Name + '|' + sensor.SensorType if full_sensor_name in SENSORS_KEY_MAPPING.keys(): sensor_value = float(sensor.Value) - float(SENSORS_KEY_MAPPING[full_sensor_name]['min_value']) min_max_delta = float(SENSORS_KEY_MAPPING[full_sensor_name]['max_value'] - SENSORS_KEY_MAPPING[full_sensor_name]['min_value']) if sensor_value >= 0.0: sensor_guage = int(sensor_value / min_max_delta * 100.0) # print(full_sensor_name + ' ' + str(sensor_guage)) for event_name in SENSORS_KEY_MAPPING[full_sensor_name]['keymap']: if sensor_guage <= 0: key_value = 0 elif SENSORS_KEY_MAPPING[full_sensor_name]['keymap'][event_name][0] > sensor_guage: key_value = int(sensor_guage/SENSORS_KEY_MAPPING[full_sensor_name]['keymap'][event_name][0]*100) else: key_value = 100 json_to_post = {"game":"HWMONITOR", "event":event_name, "data": {"value":key_value} } sensor_guage -= SENSORS_KEY_MAPPING[full_sensor_name]['keymap'][event_name][0] r = requests.post('http://' + coreProps['address'] + '/game_event', json=json_to_post, headers=headers) # print(r) # print(json_to_post) time.sleep(sleepy_time)
- Custom Apps For Steelseries Engine
-
Will There Be An Engine App For Cyberpunk 2077
For information here is the full list of predefined vibrations
What are some alternatives?
When comparing SteelSeries-CKL-App and gamesense-sdk you can also consider the following projects:
headset-charge-indicator - A simple app-indicator for GNOME desktops to display the battery charge of some wireless headsets which also allows to control some functions like LEDs, sidetone and others.
rivalcfg - CLI tool and Python library to configure SteelSeries gaming mice
openage - Free (as in freedom) open source clone of the Age of Empires II engine :rocket: