roundabout,
created on Monday, 29 September 2025, 19:25:19 (1759173919),
received on Monday, 29 September 2025, 19:25:22 (1759173922)
Author identity: Vlad <vlad.muntoiu@gmail.com>
469a0eed608e9d48f4cb0ef8ddec3ce3b40ddfa5
applets/battery/__init__.py
@@ -71,7 +71,7 @@ class BatteryMonitor(panorama_panel.Applet):
self.notification_service = None self.upower = self.bus.get("org.freedesktop.UPower") self.button = Gtk.MenuButton()self.button = Gtk.MenuButton(has_frame=False)self.icon = Gtk.Image(pixel_size=config.get("icon_size", 24)) self.button.set_child(self.icon) self.append(self.button)
@@ -82,7 +82,11 @@ class BatteryMonitor(panorama_panel.Applet):
self.critical_notification = None self.popover = Gtk.Popover() self.popover_content = Gtk.ListBox()self.popover_content = Gtk.ListBox(selection_mode=Gtk.SelectionMode.NONE) self.popover_content.set_size_request(320, -1) self.popover.set_child(self.popover_content) self.button.set_popover(self.popover)self.update_batteries() GLib.timeout_add_seconds(config.get("refresh_interval", 10), self.update_batteries)
@@ -105,11 +109,28 @@ class BatteryMonitor(panorama_panel.Applet):
if device.State == 1: any_charging = True box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 8) charge_fraction = device.Energy / device.EnergyFull meter = Gtk.ProgressBar(show_text=True, fraction=charge_fraction) box.append(meter) charge_label = Gtk.Label.new(_("{current} Wh of {full} Wh").format(current=locale.format_string("%.1f", device.Energy), full=locale.format_string("%.1f", device.EnergyFull))) charge_label.set_halign(Gtk.Align.CENTER) charge_label.set_xalign(0.5) box.append(charge_label) name_label = Gtk.Label.new(device.Vendor + " " + device.Model) name_label.set_halign(Gtk.Align.CENTER) name_label.set_xalign(0.5) box.prepend(name_label) box.set_margin_start(8) box.set_margin_end(8) box.set_margin_top(8) box.set_margin_bottom(8) row = Gtk.ListBoxRow(child=box, activatable=False) self.popover_content.append(row) if not max_energy: return False print(total_energy, max_energy)self.button.set_tooltip_text(f"{locale.format_string("%d", total_energy / max_energy * 1000)}‰") self.icon.set_from_icon_name(get_battery_icon(total_energy / max_energy, any_charging))