Skip to content

Hold off idle while any window is fullscreen - #17094

Open
stevederico wants to merge 2 commits into
omacom:quattrofrom
stevederico:fix/15329-fullscreen-idle-inhibit
Open

stevederico wants to merge 2 commits into
omacom:quattrofrom
stevederico:fix/15329-fullscreen-idle-inhibit

Conversation

@stevederico

@stevederico stevederico commented Oct 30, 2026 •

Copy link
Copy Markdown

Fixes #15329

What was wrong

Games played fullscreen, mostly with a controller, still hit the screensaver and then the lock. The only idle inhibit for games is the per-class rule on steam (plus GeForce NOW, Moonlight, RetroArch), so nothing covers Proton steam_app_* windows or games from other launchers. A commenter on #15329 hit the same thing with Rocket League from Heroic.

Fix

One catch-all rule in default/hypr/windows.lua:

o.window({ fullscreen_state_internal = 2 }, { idle_inhibit = "fullscreen" })
  • Any window in true fullscreen (mode 2) holds off idle while it's on a visible workspace, no matter which launcher started it.
  • Full width (SUPER + ALT + F, maximized, mode 1) is left out on purpose. Hyprland's fullscreen inhibit mode alone counts maximized too, so a Full width browser would otherwise never lock.
  • It sits before require("default.hypr.apps"), so app rules like noidle (always) still win.

Why general instead of per-launcher

Class rules only cover the launchers someone remembered to list. Heroic, Lutris, itch, native games and emulators all use different classes, and Wine/Proton class names change per game. Fullscreen is the thing they all share.

Relation to #15401

Complements it. #15401 inhibits on focus for steam_app_*, which also covers windowed Steam games. This covers fullscreen windows from any launcher.

Testing

  • Hyprland --verify-config (0.57.0): config ok.
  • No suite test for a one-line config rule.
  • hyprland-default-config-test.sh passes.
  • config-test.sh fails on the PKGBUILD timesyncd check, but it fails the same way on plain quattro, so it's unrelated.
  • Not tested in a live session with a real game.

@greptile-apps

greptile-apps Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issue remains.

Summary

Adds a shared fullscreen idle rule in default/hypr/windows.lua.

  • Any truly fullscreen window now keeps idle away.

No new actionable issues were found. Live fullscreen behavior was not verified.

Reviews (2) · Last reviewed commit: "Drop the fullscreen idle test" · Reviewed by Greptile

Games launched outside Steam (Heroic, Lutris, native) had no idle
inhibit rule, so the screensaver and lock fired mid-play. Inhibit idle
for any window in true fullscreen; Full width (maximized) is left out.

Fixes omacom#15329
@stevederico
stevederico force-pushed the fix/15329-fullscreen-idle-inhibit branch from 8fad5dd to 2b5202e Compare November 2, 2026 17:03
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

Successfully merging this pull request may close these issues.

Idle lock fires during Steam/Proton games: steam.lua idle_inhibit only matches the Steam client

1 participant