Add status bar battery support

This commit is contained in:
Emilien Marquegnies
2025-10-31 18:15:53 +01:00
parent 8929465f36
commit 46e8013b59
2 changed files with 229 additions and 103 deletions
+38
View File
@@ -0,0 +1,38 @@
import { Accessor, createBinding } from "ags";
import AstalBattery from "gi://AstalBattery?version=0.1";
export class Battery {
private static astalBattery: AstalBattery.Device = AstalBattery.get_default();
private static batteryInst: Battery;
constructor() {
AstalBattery.get_default();
}
public static getDefault(): Battery {
if (!this.batteryInst) {
this.batteryInst = new Battery();
}
return this.batteryInst;
}
public static getBattery(): AstalBattery.Device {
return this.astalBattery;
}
public bindHasBattery(): Accessor<boolean> {
return createBinding(Battery.getBattery(), "isBattery");
}
public bindPercentage(): Accessor<string> {
return createBinding(Battery.getBattery(), "percentage").as(
(v) => Math.round(v * 100) + "%"
);
}
public bindIcon(): Accessor<string> {
return createBinding(Battery.getBattery(), "battery_icon_name");
}
}