System details
AMD Ryzen 7 7800X3D, NVIDIA RTX 4070, Omarchy 4.0.0-1, Hyprland 0.56.2
What's wrong?
The default Steam window rule combines floating the Steam client with inhibiting idle while fullscreen:
o.window("steam", { float = true, idle_inhibit = "fullscreen" })
Source: https://github.com/basecamp/omarchy/blob/9b72edcc94513cba016f145b1ac4ffdaea54b577/default/hypr/apps/steam.lua#L1
Because Hyprland class regexes are full matches, this rule applies to the Steam client class steam, but not games launched by Steam, whose XWayland class is normally steam_app_<appid>. The float = true effect also suggests this rule was primarily intended for the Steam client. Conversely, idle_inhibit = "fullscreen" is most useful on the game windows.
For example, while Assetto Corsa was running fullscreen, hyprctl clients -j reported:
{
"class": "steam_app_244210",
"title": "Assetto Corsa",
"fullscreen": 2,
"xwayland": true,
"inhibitingIdle": false
}
After the configured idle timeout, the Omarchy screensaver opened over the game. Controller input does not reliably reset the compositor's idle timer, so the missing inhibitor becomes visible during controller-only play.
The next Steam rule already uses steam.* to cover both client and game classes for opacity:
o.window("steam.*", { tag = "-default-opacity", opacity = "1 1" })
Steps to reproduce
- Enable Omarchy idle handling and use a short screensaver timeout.
- Launch a Steam/Proton game whose class is
steam_app_<appid>.
- Run the game fullscreen and use only a controller.
- Check
hyprctl clients -j; the game reports inhibitingIdle: false.
- Wait for the idle timeout; the screensaver launches over the game.
Expected
Fullscreen Steam game windows should inhibit the Omarchy screensaver and lock timer. The Steam client can retain its existing floating behavior.
One possible approach is to split the concerns:
o.window("steam", { float = true })
o.window("steam_app_.*", { idle_inhibit = "fullscreen" })
Alternatively, the existing steam.* match could receive the fullscreen inhibitor if Steam Big Picture should also inhibit idle.
Related reports
System details
AMD Ryzen 7 7800X3D, NVIDIA RTX 4070, Omarchy 4.0.0-1, Hyprland 0.56.2
What's wrong?
The default Steam window rule combines floating the Steam client with inhibiting idle while fullscreen:
Source: https://github.com/basecamp/omarchy/blob/9b72edcc94513cba016f145b1ac4ffdaea54b577/default/hypr/apps/steam.lua#L1
Because Hyprland class regexes are full matches, this rule applies to the Steam client class
steam, but not games launched by Steam, whose XWayland class is normallysteam_app_<appid>. Thefloat = trueeffect also suggests this rule was primarily intended for the Steam client. Conversely,idle_inhibit = "fullscreen"is most useful on the game windows.For example, while Assetto Corsa was running fullscreen,
hyprctl clients -jreported:{ "class": "steam_app_244210", "title": "Assetto Corsa", "fullscreen": 2, "xwayland": true, "inhibitingIdle": false }After the configured idle timeout, the Omarchy screensaver opened over the game. Controller input does not reliably reset the compositor's idle timer, so the missing inhibitor becomes visible during controller-only play.
The next Steam rule already uses
steam.*to cover both client and game classes for opacity:Steps to reproduce
steam_app_<appid>.hyprctl clients -j; the game reportsinhibitingIdle: false.Expected
Fullscreen Steam game windows should inhibit the Omarchy screensaver and lock timer. The Steam client can retain its existing floating behavior.
One possible approach is to split the concerns:
Alternatively, the existing
steam.*match could receive the fullscreen inhibitor if Steam Big Picture should also inhibit idle.Related reports
steam_app_*windows, and the live client reportsinhibitingIdle: false.