diff options
author | Aylur <[email protected]> | 2024-06-22 20:58:00 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-06-22 20:58:00 +0200 |
commit | 4f3cc1da4aebea5ef1689f56fe6aec950a094bcf (patch) | |
tree | 99db0d2fc908cb93766210a79a5712d4b6c95604 /src/cli.vala | |
parent | 4c8d03265a87ce76cc31fd36eb476d00efe7ef56 (diff) |
remove kbd and powerprofile
Diffstat (limited to 'src/cli.vala')
-rw-r--r-- | src/cli.vala | 30 |
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); +} |