Add support for systemd-inhibit idle block inhibits #57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements listening for systemd-inhibit idle block inhibits.
For simplicity I've decided that there's no need to retrieve details about inhibitors using
ListInhibitors
method inorg.freedesktop.login1.Manager
interface and it's enough to get list of block inhibit types usingBlockInhibited
property. This property is monitored usingPropertyChanged
signal. Also the property is read on hypridle start, so if there is already an inhibitor active, then idle is going to be inhibited right away.This simplification causes that even if there are multiple idle inhibitors active, they're going to be only counted as one in hypridle (it inhibits on first active inhibitor and releases inhibit on deactivation of the last one). To check the list of active inhibitors one can use
systemd-inhibit --list
command.I'm respecting
ignore_dbus_inhibit
setting in the same way the original Dbus ScreenSaver code does.