import dbus bus = dbus.SessionBus() bus.call_blocking( bus_name="org.gnome.SessionManager", object_path="/org/gnome/SessionManager", dbus_interface="org.gnome.SessionManager", method="Inhibit", signature="susu", args=["your_app_id", 0, "I'm currently doing something...", 1 | 2 | 4 | 8])
This can stop Gnome from automatically shutting down (or suspending, logging out, etc.). However you will still be able to manually shut it down, Gnome may present a warning1 with some of the values in
You can discover the correct
signature by using:
$ busctl --user introspect org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager interface - - - # <- dbus_interface .CanRebootToFirmwareSetup method - b - .CanShutdown method - b - .GetClients method - ao - .GetInhibitors method - ao - .GetLocale method i s - .Inhibit method susu u - # <- method and signature ...
susu means it expects four arguments: a string, a uint32, a string and a uint32.
For what the actual
args are though, I couldn’t find a better documentation than the source code that defines them.
From what I’ve seen
your_app_idmust be valid for Gnome to present the warning. ↩︎