diff --git a/src/modules/bar.tsx b/src/modules/bar.tsx index cd36e424..2645fdee 100644 --- a/src/modules/bar.tsx +++ b/src/modules/bar.tsx @@ -34,6 +34,12 @@ const getBatteryIcon = (perc: number) => { return "󰁹"; }; +const formatSeconds = (sec: number) => { + if (sec >= 3600) return `${Math.floor(sec / 3600)} hour${sec % 3600 === 0 ? "" : "s"}`; + if (sec >= 60) return `${Math.floor(sec / 60)} minute${sec % 60 === 0 ? "" : "s"}`; + return `${sec} second${sec === 1 ? "" : "s"}`; +}; + const hookFocusedClientProp = ( self: AstalWidget, prop: keyof AstalHyprland.Client, @@ -463,9 +469,17 @@ const NotifCount = () => ( ); const Battery = () => ( - `module battery ${p < 0.2 ? "low" : ""}`)}> + `module battery ${p < 0.2 ? "low" : ""}`)} + setup={self => + setupCustomTooltip( + self, + bind(AstalBattery.get_default(), "timeToEmpty").as(p => `${formatSeconds(p)} remaining`) + ) + } + > );