roundabout,
created on Monday, 18 August 2025, 15:06:09 (1755529569),
received on Monday, 18 August 2025, 15:06:12 (1755529572)
Author identity: Vlad <vlad.muntoiu@gmail.com>
a60d1567af9f2440c1ba64126c537338adaa9e38
applets/notifier/__init__.py
@@ -39,6 +39,10 @@ custom_css = """
.notification-button { padding: 0; } .panorama-panel-notifier-summary { font-weight: 600; }""" css_provider = Gtk.CssProvider()
@@ -46,7 +50,7 @@ css_provider.load_from_data(custom_css)
Gtk.StyleContext.add_provider_for_display( Gdk.Display.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION100)
@@ -106,6 +110,38 @@ class BriefNotification(Gtk.Box):
self.set_halign(Gtk.Align.CENTER) class DetailedNotification(Gtk.ListBoxRow): def __init__(self, app_name, replaces_id, app_icon, summary, body, actions, hints, expire_timeout): Gtk.ListBoxRow.__init__(self) if not app_icon: app_icon = "preferences-desktop-notifications" self.box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=8) self.set_child(self.box) self.icon = Gtk.Image.new_from_icon_name(app_icon) self.icon.set_icon_size(Gtk.IconSize.LARGE) self.box.append(self.icon) self.text_area = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=4) self.summary = Gtk.Label.new(summary) self.summary.set_halign(Gtk.Align.START) self.summary.set_xalign(0) self.summary.add_css_class("panorama-panel-notifier-summary") self.text_area.append(self.summary) self.body = Gtk.Label.new(body) self.body.set_halign(Gtk.Align.START) self.body.set_xalign(0) self.summary.add_css_class("panorama-panel-notifier-body") self.text_area.append(self.body) # TODO: add actions self.box.append(self.text_area) class NotifierApplet(panorama_panel.Applet): name = _("Notification centre") description = _("Get desktop notifications")
@@ -128,6 +164,10 @@ class NotifierApplet(panorama_panel.Applet):
self.stack.add_child(self.notification_indicator) self.stack.set_transition_type(Gtk.StackTransitionType.SLIDE_UP_DOWN) self.stack.set_transition_duration(500) self.popover = Gtk.Popover() self.notification_list = Gtk.ListBox(selection_mode=Gtk.SelectionMode.NONE) self.popover.set_child(self.notification_list) self.button.set_popover(self.popover)# TODO: support the other parameters; add a popover with a history self.append(self.button)
@@ -156,6 +196,8 @@ class NotifierApplet(panorama_panel.Applet):
if expire_timeout <= 0: expire_timeout = 2500 GLib.timeout_add(expire_timeout, remove_notification) self.notification_list.append(DetailedNotification(app_name, replaces_id, app_icon, summary, body, actions, hints, expire_timeout))# TODO: notify that it was closed def get_config(self):