Files
dotfiles-status-bar/widget/battery.tsx
2025-12-18 10:19:25 -08:00

25 lines
675 B
TypeScript

import { Gtk } from "ags/gtk4"
import AstalBattery from "gi://AstalBattery?version=0.1"
import { createBinding, createComputed } from "gnim"
export default function Battery() {
const battery = AstalBattery.get_default()
const percentage = createBinding(battery, "percentage")
const full_percentage = Math.floor(percentage.peek() * 100)
const battery_info = createComputed(() => (`${full_percentage === 100 ? "FULL" : "CHR"}: ${full_percentage}%`))
if (!battery.is_battery) {
return <></>
}
return (
<>
<box class="status-box battery">
<label label={battery_info} />
</box>
<Gtk.Separator class="separator" />
</>
)
}