Skip to content

Make the timers pause after user has stopped providing input to the computer #24

@felix91gr

Description

@felix91gr

Most of my usage of Badger is related to RSI prevention for my hands and arms. However, I find it hard to actually pay the reminders the respect they should deserve, because I don't spend a continuous amount of time sitting in front of the computer.

That makes it so that some reminders are perfectly timed (because I've spent 15 minutes continuously using the keyboard and mouse, for example) while some others are not (they might trigger 20s after I come back from making myself some tea).

There's a precedent for RSI-preventing apps behaving based on the latest user input, see Workrave for that.

Sadly, Workrave doesn't work fully anymore with Elementary and I don't know why 😢
I guess the GUI is too old and it's been deprecated.

But I digress. That app has different timers that trigger reminders for micropauses, full rests and end of daily load. Those timers stop counting after around 10s of no input, and then reset if the user spends the micropause or rest stopping time, respectively, out of the computer.

I think Badger could use a similar approach. Since it aims to be minimal, a smaller feature than what Workrave has/had should probably suffice. Maybe just pausing the timers if the user hasn't given input in the last 10s?


Possible problems with this proposal

Privacy

You could ask about the privacy aspect of this. I've asked about the stance of Elementary regarding these kinds of features in the ElementaryOS Slack, and they said that it's encouraged to ask the OS for keyboard/mouse events if the use case needs it. They also said that they do App Review anyways before new releases and that therefore if an app aims to be malicious they're probably catching it anyways.

Existence of the feature

In the Slack they also said that this system hook for keyboard and mouse events exists, somewhere in the shared GNOME stacks between Linux distros. They sent me a link, I can try to fish it out of the Slack if you need me to. Otherwise I can just ask as well :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededwishlistGood to have, but not immediately required

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions