Rewrite #30

Merged
S4NKALP merged 506 commits from dev into macos 2026-07-18 16:11:08 +00:00
Showing only changes of commit 4dcfaed69e - Show all commits
+25
View File
@@ -100,6 +100,9 @@ class ModusService(Service):
@Signal
def show_notificationcenter_changed(self, value: bool) -> None: ...
@Signal
def fullscreen_changed(self, value: bool) -> None: ...
@Signal
def notification_count_changed(self, value: int) -> None: ...
@@ -167,6 +170,16 @@ class ModusService(Service):
def show_notificationcenter(self) -> bool:
return self._show_notificationcenter
@Property(bool, flags="read-write", default_value=False)
def fullscreen(self) -> bool:
return self._fullscreen
@fullscreen.setter
def fullscreen(self, value: bool):
if value != self._fullscreen:
self._fullscreen = value
self.fullscreen_changed(value)
@current_active_app_name.setter
def current_active_app_name(self, value: str):
if value != self._current_active_app_name:
@@ -294,6 +307,7 @@ class ModusService(Service):
self._show_notificationcenter = False
self._dock_width = 0
self._dock_height = 0
self._fullscreen = False
@property
def notification_count(self) -> int:
@@ -327,6 +341,7 @@ def _setup_workspace_monitoring():
active_workspace = json.loads(workspace_data.decode("utf-8"))["name"]
service._current_workspace = str(active_workspace)
_hyprland_connection.connect("event::workspace", _on_workspace_changed)
_hyprland_connection.connect("event::fullscreen", _on_fullscreen_changed)
except Exception as e:
logger.error(f"[ModusService] Failed to setup workspace monitoring: {e}")
service._current_workspace = "1"
@@ -378,6 +393,16 @@ def _on_workspace_changed(obj, signal):
logger.error(f"[ModusService] Error processing workspace change: {e}")
def _on_fullscreen_changed(obj, event):
service = get_modus_service()
try:
data = event.data[0] if event.data else ""
mode = data.split(":")[-1] if ":" in data else "0"
service.fullscreen = mode in ("1", "2")
except Exception as e:
logger.error(f"[ModusService] Error processing fullscreen change: {e}")
def remove_notification(id: int):
get_notification_service().remove_cached_notification(id)
get_modus_service().notification_count_changed(get_notification_service().count)