Skip to content

[Request/Bug] Don't drop inhibitors/delays from systemd-inhibit on the system bus #2

@joebonrichie

Description

@joebonrichie

budgie-session version

0.9.1

Use-cases

systemd provides an inhibitors/delays on the system bus that can prevent the pc from shutting down/going to sleep etc.

Since 2012 gnome-session purposely doesn't respect these inhibitors and only listens exclusively to inhibitors from gnome-session-inhibit on the session bus.

This is annoying to applications which use the general purpose inhibit API to set inhibitors which are not then respected.

There may be additional nastiness to untangle here as gnome sets it's own inhibitors on the system bus that then block shutdown/sleep when systemd inhibitors are no longer dropped.

$ systemd-inhibit --list
...
GNOME Shell    1000 ninya 1471 gnome-shell    sleep                                                    GNOME needs to lock the screen            delay
ninya          1000 ninya 1700 gsd-media-keys handle-power-key:handle-suspend-key:handle-hibernate-key GNOME handling keypresses                 block
ninya          1000 ninya 1700 gsd-media-keys sleep                                                    GNOME handling keypresses                 delay
ninya          1000 ninya 1704 gsd-power      sleep                                                    GNOME needs to lock the screen            delay

Proposal

Respect systemd inhibitors on the system bus in addition to those from the gnome-session-inhibit API.

References

https://www.freedesktop.org/wiki/Software/systemd/inhibit/

https://gitlab.gnome.org/GNOME/gnome-session/-/issues/110

https://github.com/BuddiesOfBudgie/budgie-session/blob/v0.9.1/gnome-session/gsm-systemd.c#L79

https://github.com/BuddiesOfBudgie/budgie-session/blob/v0.9.1/gnome-session/gsm-systemd.c#L89

https://gitlab.gnome.org/GNOME/gnome-session/-/commit/c1d0790459b8d277fbde135b1653df84b79d5f22

https://manpages.org/gnome-session-inhibit

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions