pub static DBUS_NAME: &str = "org.rogcore.Daemon";
pub static DBUS_PATH: &str = "/org/rogcore/Daemon";
pub static DBUS_IFACE: &str = "org.rogcore.Daemon";
SetKeyBacklight
GetKeyBacklight
AnimatrixWrite
SetFanMode
GetFanMode
SetChargeLimit
GetChargeLimit
GetKeyBacklightModes
KeyBacklightChanged
FanModeChanged
ChargeLimitChanged
This method expects a string of JSON as input. The JSON is of format such:
{
"Stable": {
"colour": [ 255, 0, 0]
}
}
The possible contents of a mode are:
"colour": [u8, u8, u8],
"speed": <String>,
<Low, Med, High>"direction": <String>,
<Up, Down, Left, Right>
Modes may or may not be available for a specific laptop (TODO: dbus getter for supported modes). Modes are:
"Stable": { "colour": <colour> },
"Pulse": { "colour": <colour> },
"Comet": { "colour": <colour> },
"Flash": { "colour": <colour> },
"Strobe": { "speed": <speed> },
"Rain": { "speed": <speed> },
"Laser": { "colour": <colour>, "speed": <speed> },
"Ripple": { "colour": <colour>, "speed": <speed> },
"Highlight": { "colour": <colour>, "speed": <speed> },
"Rainbow": { "direction": <direction>, "speed": <speed> },
"Breathe": { "colour": <colour>, "colour2": <colour>, "speed": <speed> },
"Star": { "colour": <colour>, "colour2": <colour>, "speed": <speed> },
"MultiStatic": { "colour1": <colour>, "colour2": <colour>, , "colour3": <colour>, "colour4": <colour> },
Additionally to the above there is "RGB": [[u8; 64]; 11]
which is for per-key
setting of LED's but this requires some refactoring to make it easily useable over
dbus.
Lastly, there is "LedBrightness": <u8>
which accepts 0-3 for off, low, med, high.
This method will return a JSON string in the same format as accepted by SetKeyBacklight
.
Will return a JSON string array of modes that this laptop accepts. The mode data within this will be the current settings per mode. Good for:
- Getting supported modes
- Getting all mode settings
Used to write data to the AniMe display if available. Currently is takes [[u8; 640]; 2]
which must be the byte data that will be written directly to the USB device.
Accepts an integer from the following:
0
: Normal1
: Boost mode2
: Silent mode
Returns the integer set from above.
Accepts an integer in the range of 20-100.
Returns the integer set from above.
When emitted, it will emit the JSON data of the mode changed to, e.g:
{
"Stable": {
"colour": [ 255, 0, 0]
}
}
When emitted, it will include the integer the fan mode was changed to.
When emitted, it will include the integer the charging limit was changed to.
dbus-send --system --type=method_call --dest=org.rogcore.Daemon /org/rogcore/Daemon org.rogcore.Daemon.SetKeyBacklight string:'{"Stable": {"colour": [ 80, 0, 40]}}'
dbus-send --system --type=method_call --dest=org.rogcore.Daemon /org/rogcore/Daemon org.rogcore.Daemon.SetKeyBacklight string:'{"Star":{"colour":[0,255,255],"colour2":[0,0,0],"speed":"Med"}}'
Note: setting colour2 to [0,0,255]
activates random star colour. Colour2 has no effect on the
mode otherwise.
dbus-send --system --type=method_call --dest=org.rogcore.Daemon /org/rogcore/Daemon org.rogcore.Daemon.SetKeyBacklight string:'{"Star":{"colour":[0,255,255],"colour2":[0,0,255],"speed":"Med"}}'
dbus-send --system --type=method_call --dest=org.rogcore.Daemon /org/rogcore/Daemon org.rogcore.Daemon.SetKeyBacklight string:'{"LedBrightness":3}'
dbus-send --system --type=method_call --dest=org.rogcore.Daemon /org/rogcore/Daemon org.rogcore.Daemon.SetFanMode byte:'2'
Monitoring dbus while sending commands via rog-core
will give you the json structure if you are otherwise unsure, e.g: dbus-monitor --system |grep -A2 rogcore
.
dbus-send --system --print-reply --dest=org.rogcore.Daemon /org/rogcore/Daemon org.freedesktop.DBus.Introspectable.Introspect > xml/dbus-0.14.4.xml