summaryrefslogtreecommitdiff
path: root/src/cli.vala
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-06-22 20:58:00 +0200
committerAylur <[email protected]>2024-06-22 20:58:00 +0200
commit4f3cc1da4aebea5ef1689f56fe6aec950a094bcf (patch)
tree99db0d2fc908cb93766210a79a5712d4b6c95604 /src/cli.vala
parent4c8d03265a87ce76cc31fd36eb476d00efe7ef56 (diff)
remove kbd and powerprofile
Diffstat (limited to 'src/cli.vala')
-rw-r--r--src/cli.vala30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/cli.vala b/src/cli.vala
index 85e70ae..710edec 100644
--- a/src/cli.vala
+++ b/src/cli.vala
@@ -37,14 +37,38 @@ int main(string[] argv) {
}
var battery = AstalBattery.get_default();
- print("%s\n", AstalBattery.to_json(battery));
+ print("%s\n", to_json(battery));
if (monitor) {
- battery.notify.connect(() => {
- print("%s\n", AstalBattery.to_json(battery));
+ battery.notify.connect((prop) => {
+ if (prop.get_name() == "percentage"
+ || prop.get_name() == "state"
+ || prop.get_name() == "icon-name"
+ || prop.get_name() == "time-to-full"
+ || prop.get_name() == "time-to-empty"
+ ) {
+ print("%s\n", to_json(battery));
+ }
});
new GLib.MainLoop(null, false).run();
}
return 0;
}
+
+private string to_json(AstalBattery.Device device) {
+ string s = "unknown";
+ if (device.state == AstalBattery.State.CHARGING)
+ s = "charging";
+ if (device.state == AstalBattery.State.DISCHARGING)
+ s = "discharging";
+ if (device.state == AstalBattery.State.FULLY_CHARGED)
+ s = "fully_charged";
+
+ var p = device.percentage;
+ var i = device.icon_name;
+ var r = device.state == AstalBattery.State.CHARGING
+ ? device.time_to_full : device.time_to_empty;
+
+ return "{ \"percentage\": %f, \"state\": \"%s\", \"icon_name\": \"%s\", \"time_remaining\": %f }".printf(p, s, i, r);
+}