From 969174cc81fbef4aedc6d51e90681c9447f99721 Mon Sep 17 00:00:00 2001 From: maziggy Date: Sun, 12 Apr 2026 11:05:22 +0200 Subject: [PATCH] . --- spoolbuddy/daemon/display_control.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/spoolbuddy/daemon/display_control.py b/spoolbuddy/daemon/display_control.py index e991d247b..1ff7a56bc 100644 --- a/spoolbuddy/daemon/display_control.py +++ b/spoolbuddy/daemon/display_control.py @@ -125,23 +125,35 @@ class DisplayControl: def _wlopm(self, on: bool) -> None: """Toggle HDMI output via wlopm. No-op if wlopm is unavailable.""" if not self._wlopm_path: + logger.warning("wlopm not available, cannot control HDMI") return # Retry discovery each call until the Wayland socket appears — labwc # may start after the daemon on boot. if self._wayland_env is None: self._wayland_env = self._discover_wayland_env() if self._wayland_env is None: - logger.debug("No Wayland socket found, cannot control HDMI") + logger.warning("No Wayland socket found in %s, cannot control HDMI", f"/run/user/{os.getuid()}") return logger.info("Wayland session discovered: %s", self._wayland_env.get("WAYLAND_DISPLAY")) flag = "--on" if on else "--off" try: env = {**os.environ, **self._wayland_env} - subprocess.run( + result = subprocess.run( [self._wlopm_path, flag, self._output], env=env, timeout=5, capture_output=True, + text=True, ) + if result.returncode != 0: + logger.warning( + "wlopm %s %s exit=%d: %s", + flag, + self._output, + result.returncode, + (result.stderr or result.stdout).strip(), + ) + else: + logger.info("wlopm %s %s OK", flag, self._output) except Exception as e: - logger.debug("wlopm %s %s failed: %s", flag, self._output, e) + logger.warning("wlopm %s %s failed: %s", flag, self._output, e)