From a755216ccb467a31cd58eef5ae7c23e084f1750c Mon Sep 17 00:00:00 2001 From: Nippy Date: Sat, 26 Sep 2026 18:21:21 +0200 Subject: fix desktop --- raveos-gnome-theme/raveos-gnome-idle-blank | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'raveos-gnome-theme/raveos-gnome-idle-blank') diff --git a/raveos-gnome-theme/raveos-gnome-idle-blank b/raveos-gnome-theme/raveos-gnome-idle-blank index 06ee224..44425f9 100644 --- a/raveos-gnome-theme/raveos-gnome-idle-blank +++ b/raveos-gnome-theme/raveos-gnome-idle-blank @@ -11,6 +11,9 @@ DISPLAY_BUS = "org.gnome.Mutter.DisplayConfig" DISPLAY_PATH = "/org/gnome/Mutter/DisplayConfig" IDLE_BUS = "org.gnome.Mutter.IdleMonitor" IDLE_PATH = "/org/gnome/Mutter/IdleMonitor/Core" +SESSION_BUS = "org.gnome.SessionManager" +SESSION_PATH = "/org/gnome/SessionManager" +IDLE_INHIBIT_FLAG = 8 POLL_MS = 2000 WAKE_MS = 1500 @@ -33,6 +36,24 @@ def name_has_owner(bus, name): return False +def is_idle_inhibited(bus): + try: + res = bus.call_sync( + SESSION_BUS, + SESSION_PATH, + SESSION_BUS, + "IsInhibited", + GLib.Variant("(u)", (IDLE_INHIBIT_FLAG,)), + None, + Gio.DBusCallFlags.NONE, + 2000, + None, + ) + return bool(res.unpack()[0]) + except GLib.Error: + return False + + def main(): if "GNOME" not in os.environ.get("XDG_CURRENT_DESKTOP", ""): return 0 @@ -83,6 +104,8 @@ def main(): delay = settings.get_uint("idle-delay") idle = get_idle_ms() if delay > 0 and idle >= delay * 1000 and not state["off"]: + if is_idle_inhibited(bus): + return True set_power(3) state["off"] = True elif state["off"] and idle < WAKE_MS: -- cgit v1.3