Updates to dbus remote for plugins.

This commit is contained in:
Storm Dragon
2026-01-12 11:53:29 -05:00
parent 75ad2f0dec
commit 1d241d94a8
3 changed files with 110 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ import logging
from gi.repository import GLib
from cthulhu import debug
from cthulhu import dbus_service
from cthulhu.plugin import Plugin, cthulhu_hookimpl
xlibAvailable = True
@@ -136,6 +137,52 @@ class WindowTitleReader(Plugin):
self._present_message("Window title reader unavailable")
return True
@dbus_service.parameterized_command
def set_enabled(
self,
enabled: bool,
notify_user: bool = True
) -> bool:
"""Enable or disable window title reader tracking."""
if enabled:
if self._enabled:
if notify_user:
self._present_message("Window title reader on")
return True
if not xlibAvailable:
if notify_user:
self._present_message("Window title reader unavailable")
debug.printMessage(
debug.LEVEL_INFO,
f"WindowTitleReader: python-xlib unavailable: {xlibImportError}",
True,
)
return False
if self._start_tracking():
if notify_user:
self._present_message("Window title reader on")
return True
if notify_user:
self._present_message("Window title reader unavailable")
return False
if self._enabled:
self._stop_tracking()
if notify_user:
self._present_message("Window title reader off")
return True
@dbus_service.getter
def get_enabled(self) -> bool:
"""Returns True if the window title reader is enabled."""
return self._enabled
def _present_message(self, messageText):
if not self.app:
return