Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full-screen player inhibits screen saver post-video completion in browser #26

Open
e-tho opened this issue Mar 3, 2024 · 1 comment

Comments

@e-tho
Copy link

e-tho commented Mar 3, 2024

No description provided.

@yawor
Copy link
Contributor

yawor commented May 14, 2024

I've also noticed that. I think the problem is that when the inhibit is active it doesn't stop the idle timer. The timer still trigger listeners, but listeners won't fire on-timeout actions due to the inhibit being active.

So if you have 5 minutes timeout set and watch the video without touching anything for 6 minutes, then the 5 minutes timeout will trigger but won't execute. When the video finishes and the inhibit is released, the timer doesn't reset and is still going forward.

This can also have some other consequences. For example if you have one listener with 5 minut timeout and another one with 6 minute timeout and the video finishes between them, then hypridle won't execute actions for 5 minutes timeout, but will execute ones for 6 minutes one.

The problem I see is that the timeouts themselves are triggered by the hyprland (or wayland compositor in general) using https://wayland.app/protocols/ext-idle-notify-v1.

I see two probable ways to fix this. When hypridle receives dbus/systemd inhibit request, the it could do one of these:

  1. Use experimental idle inhibit wayland protocol to inhibit idle state in the compositor.
  2. Deregister all the listeners and register them back when inhibition is released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants