From e9095ef9cfcfe22cf3fbaf88408a3a9b77cd1b24 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 11 Aug 2025 13:09:08 +0545 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(ui):=20reorganize?= =?UTF-8?q?=20imports=20and=20improve=20notification=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lock.py | 51 ++++++++++----------- modules/notification/notification_center.py | 33 ++++++------- 2 files changed, 38 insertions(+), 46 deletions(-) diff --git a/lock.py b/lock.py index 091c306..3392f2d 100644 --- a/lock.py +++ b/lock.py @@ -1,37 +1,36 @@ -import gi, pam - -gi.require_version("Gdk", "3.0") -gi.require_version("Gtk", "3.0") - -import setproctitle - -gi.require_version("GtkSessionLock", "0.1") -from gi.repository import ( - Gdk, # pyright: ignore[reportMissingModuleSource] - GtkSessionLock, # pyright: ignore[reportAttributeAccessIssue] -) - -from fabric.widgets.window import Window - -# from widgets.wayland import WaylandWindow as Window -import os -from fabric.widgets.entry import Entry -from fabric.widgets.datetime import DateTime +from widgets.circle_image import CircleImage as Image from modules.panel.components.indicators import ( BatteryIndicator, BluetoothIndicator, NetworkIndicator, ) -from fabric.widgets.box import Box +from gi.repository import ( + Gdk, # pyright: ignore[reportMissingModuleSource] + GLib, + GtkSessionLock, # pyright: ignore[reportAttributeAccessIssue] +) +from fabric.widgets.window import Window from fabric.widgets.label import Label +from fabric.widgets.entry import Entry +from fabric.widgets.datetime import DateTime from fabric.widgets.centerbox import CenterBox - -# from fabric.widgets.image import Image -import getpass -from fabric import Application -from gi.repository import GLib -from widgets.circle_image import CircleImage as Image +from fabric.widgets.box import Box from fabric.utils import get_relative_path +from fabric import Application +import os +import getpass +import setproctitle +import gi +import pam + +gi.require_version("Gdk", "3.0") +gi.require_version("Gtk", "3.0") + + +gi.require_version("GtkSessionLock", "0.1") +# from fabric.widgets.image import Image + +# from widgets.wayland import WaylandWindow as Window class IndicatorBox(Box): diff --git a/modules/notification/notification_center.py b/modules/notification/notification_center.py index 469d273..a23a326 100644 --- a/modules/notification/notification_center.py +++ b/modules/notification/notification_center.py @@ -1,24 +1,25 @@ -from fabric.widgets.centerbox import CenterBox -from loguru import logger from collections import defaultdict -from gi.repository import GLib from fabric.widgets.box import Box from fabric.widgets.button import Button +from fabric.widgets.centerbox import CenterBox +from fabric.widgets.eventbox import EventBox from fabric.widgets.label import Label +from fabric.widgets.revealer import Revealer from fabric.widgets.scrolledwindow import ScrolledWindow +from gi.repository import GLib +from loguru import logger + from modules.notification.notification import ( NotificationWidget, - cleanup_notification_image_cache, + cache_notification_icon, cleanup_all_notification_caches, cleanup_notification_specific_caches, + get_fallback_notification_icon, ) from services.modus import notification_service -from widgets.wayland import WaylandWindow as Window -from fabric.widgets.image import Image -from fabric.widgets.eventbox import EventBox from widgets.custom_image import CustomImage -from fabric.widgets.revealer import Revealer +from widgets.wayland import WaylandWindow as Window class ExpandableNotificationGroup(Box): @@ -42,8 +43,6 @@ class ExpandableNotificationGroup(Box): self.expanded_container.set_visible(False) def create_collapsed_state(self): - from widgets.custom_image import CustomImage - latest_notification = self.notifications[0] # Most recent notification # Create clickable event box @@ -92,6 +91,7 @@ class ExpandableNotificationGroup(Box): markup=latest_notification._notification.summary.replace( "\n", " " ), + max_chars_width=20, h_align="start", ellipsization="end", ), @@ -177,6 +177,7 @@ class ExpandableNotificationGroup(Box): markup=latest_notification._notification.summary.replace( "\n", " " ), + max_chars_width=25, h_align="start", ellipsization="end", ), @@ -312,8 +313,6 @@ class ExpandableNotificationGroup(Box): # Fallback to app icon try: - from modules.notification.notification import cache_notification_icon - cached_app_icon = cache_notification_icon(notification.app_icon, (35, 35)) if cached_app_icon: return cached_app_icon @@ -321,8 +320,6 @@ class ExpandableNotificationGroup(Box): pass # Ultimate fallback - from modules.notification.notification import get_fallback_notification_icon - return get_fallback_notification_icon((35, 35)) def on_clicked(self, widget, event): @@ -449,7 +446,6 @@ class NotificationCenterWidget(NotificationWidget): def create_content(self, notification): # Create our custom close button for notification center - from widgets.custom_image import CustomImage self.close_button = Button( name="notif-close-button", @@ -467,9 +463,6 @@ class NotificationCenterWidget(NotificationWidget): ) # Create the content box manually with our custom close button - from fabric.widgets.box import Box - from fabric.widgets.label import Label - return Box( name="notification-content", spacing=8, @@ -493,7 +486,7 @@ class NotificationCenterWidget(NotificationWidget): name="notification-summary", markup=notification.summary.replace("\n", " "), h_align="start", - max_chars_width=30, + max_chars_width=25, ellipsization="end", ), ], @@ -502,7 +495,7 @@ class NotificationCenterWidget(NotificationWidget): Label( markup=notification.body.replace("\n", " "), h_align="start", - max_chars_width=35, + max_chars_width=25, ellipsization="end", ) if notification.body