Proposal: passing user idle time to systemd-logind

Aleix Pol aleixpol at kde.org
Fri May 24 20:51:42 BST 2019


On Wed, May 22, 2019 at 6:13 PM Germano Massullo
<germano.massullo at gmail.com> wrote:
>
> Hello, I am writing to you to propose the following reasoning, hoping
> that it can help making easier (just a bit) third parties development
> work on Linux.
> I am currently developing BOINC client user idle time detection on
> Linux systems (both graphical or tty sessions)
> After some studies I started writing a little piece of code that that
> is able to print on standard output the user idle time by retrieving
> it from systemd-logind IdleSinceHint property (that is exposed on
> DBus). By the way I found out that this value was always 0 [1], so I
> asked why [2]. I have been told that logind relies on the desktop
> environment to pass this information.
> Many d.e. expose user idle time to their own DBus path, (i.e.
> org.gnome.Mutter.IdleMonitor), so I will be forced to write code that
> depends on the specific desktop environment. Since:
> 1) systemd-logind is just ready for exposing user idle time;
> 2) for a developer writing code for Linux it would be much easier to
> retrieve user idle time from a unique place rather than having to deal
> with all various desktop environments;
> I would like to ask you what do you think about passing the user idle
> time to logind [3] [4] ?
>
> Best regards
>
> [1]: you can try with system console command
> $ sleep 2 && gdbus introspect --system --dest org.freedesktop.login1
> --object-path /org/freedesktop/login1 | grep IdleSinceHint
> [2]: https://lists.freedesktop.org/archives/systemd-devel/2019-May/042726.html
> [3]: https://www.freedesktop.org/wiki/Software/systemd/writing-desktop-environments/
> [4]: https://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/

We are using the kidletime framework to do that on our applications:
https://api.kde.org/frameworks/kidletime/html/index.html

IIRC, In X11 it happens through mere X11 observation, in wayland
there's a protocol for that,
It could make sense to expose this data to logind and even consume it
like that from applications. Why not.

Aleix


More information about the Plasma-devel mailing list