>If the user was idle for a second (using a KIdleTime timeout), I start my own >idle time counter (counter++ every second). >Then I catch the next resume event (next user input) and reset my counter to 0.
That sounds like what I had in mind. > 2) It works with XWayland, but only detects user activity if the user makes > an input to an XWayland window. Yeah, that's expected. We only send things to X when an X app has focus. Changing this behaviour is not an option. I don't think this is a viable setup option to support. >RSIBreak is started as an XWayland application by default. That shouldn't be the case. Are you on OpenSuse by any chance? > > 3) It works okay if RSIBreak is started as a native Wayland application > (QT_QPA_PLATFORM=wayland). > All input is detected, on native and XWayland windows. > But: It takes about 5-10 seconds of me not doing any inputs for the idle > timeout to be called, instead of the 1 second timeout I requested. > (the resume event is emitted immediately though, it is just the idle > timout that is slow) Indeed: // less than 5 sec is not idle by definition timer->setInterval(qMax(timeout, 5000u)); In kwayland-server/src/server/idle_interface.cpp I have no objections to changing this. David > > So I wonder if this can be fixed in KIdleTime, or if that's just how Wayland > works. > Thank you, > Dominik