[SCRIPT] Updated

This commit is contained in:
t
2025-03-31 20:14:11 +02:00
parent 810f54cb65
commit 314a27eb42
472 changed files with 11721 additions and 921 deletions
+42
View File
@@ -0,0 +1,42 @@
import asyncio
from ignis.widgets import Widget
from ignis.services.system_tray import SystemTrayService, SystemTrayItem
system_tray = SystemTrayService.get_default()
class TrayItem(Widget.Button):
__gtype_name__ = "TrayItem"
def __init__(self, item: SystemTrayItem):
if item.menu:
menu = item.menu.copy()
else:
menu = None
super().__init__(
child=Widget.Box(
child=[
Widget.Icon(image=item.bind("icon"), pixel_size=24),
menu,
]
),
tooltip_text=item.bind("tooltip"),
on_click=lambda x: asyncio.create_task(item.activate_async()),
setup=lambda self: item.connect("removed", lambda x: self.unparent()),
on_right_click=lambda x: menu.popup() if menu else None,
css_classes=["tray-item", "unset"],
)
class Tray(Widget.Box):
__gtype_name__ = "Tray"
def __init__(self):
super().__init__(
css_classes=["tray"],
setup=lambda self: system_tray.connect(
"added", lambda x, item: self.append(TrayItem(item))
),
spacing=10,
)