How to tell systemd-logind that the session is not idle, without using a desktop environment or session manager

d-busi3logindsystemdxorg

I want to use logind for power management. After 30 minutes of inactivity, I would like the computer to suspend.

Problem is, right now, it suspends after 30 minutes, even when I am active with mouse and keyboard. My logind.conf:

[Login]
HandlePowerKey=suspend
IdleAction=suspend
IdleActionSec=30min

My Ubuntu 15.04 setup is very minimal, and I would like to keep it that way. I login at the console (I don't want a session manager) and then type startx, which launches my ~/.xinitrc that executes i3, my preferred window manager. I do not want to use a desktop environment.

I want the computer to suspend and lock after a given amount of time.

So, my ~/.config/i3/config file includes:

exec "xss-lock -- i3lock -c 000000"

The screen locker works fine, and integrates fine. So no problems there.

In case it is of interest:

loginctl show-seat -p IdleHint

Yields:

IdleHint=yes

Seems like that should be "no" if I am active, right?

And if I do this:

gdbus call --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1/session/c1 --method org.freedesktop.login1.Session.SetIdleHint false

or this:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1/session/c1 "org.freedesktop.login1.Session.SetIdleHint" boolean:false

Reading IdleHint still outputs "IdleHint=yes"!

So what am I missing? How do I keep systemd-logind from suspending while I am active, without using a session manager or desktop environment?

I know that I could use lxqt-powermanagement, for instance, but I think I am correct in assuming this is unnecessary. Of course I can change my personal preferences regarding desktop environment, and will if necessary. This problem seems solvable, though.

Best Answer

Sadly, the lack of answers may mean that there isn't one. Happy to be wrong, though!

For those who may be researching the same thing, I finally caved in and am using a session manager. Specifically, sddm. Everything seems to be working fine, now, and the session manager really isn't too bloated and pretty much stays out of the way.

Related Question