Fullscreen or borderless window for games?

Which is better? Is there any difference between them under Hyprland?

I use borderless right now because most games seem to default to that but I have no idea why I would use one over the other.

1 Like

No difference, if you fullscreen a borderless window it’s the same as fullscreen. Only difference might be in how the game treats itself, in which case usually borderless will win because then the game won’t try to fullscreen itself when you unfullscreen it for whatever reason you might want it.

2 Likes

With fullscreen window you can use immediate window rule which can significantly reduce input lag by enabling tearing. - Tearing – Hyprland Wiki

I use it for osu! and fps games.

1 Like

if you fullscreen a borderless window manually via a keybind you can use it too.

Borderless full screen works better for me in pretty much every instance where it’s available. On multi monitor setups, a game in full screen usually goes black when switching focus to your secondary monitor, so borderless wins in that scenario.

Usually a remnant of Windows games. Well, the distinction in general is very windows-y.

The reason is Windows “exclusive fullscreen” gives the app direct control of the display. Like, down to the gpu direct. That’s why games can often force your display to modeset (2s of black screen, weird resolutions, etc)

On Wayland, no such mechanism exists. The app can never have direct drm access, so the difference between “fullscreen” and “borderless” is pretty much non-existent outside of the app’s minor window-management-stuff behavior. (e.g. “if I am in fullscreen, I’ll ask the compositor to make me fullscreen”)

Am I doing this right?

general {
    allow_tearing = true
}

...

bind = $mod, F, fullscreen, immediate

immediate is a windowrule, not a dispatcher parameter.

windowrule = immediate, fullscreen:1

?
is hyprctl clients supposed to show something when tearing is enabled for a window?

Nope, hyprctl monitors will though when tearing is active.
20250727_23h40m06s

(and yes the windowrule is ok)

I set them to full screen because I thought that would work the same way it works for Windows as @vaxry described. Silly me…

Any how, this is what I have in custom.d/regular/rules.conf

windowrule = content game, class:^(steam_app_\d+)|gamescope$, title:negative:|^(?i)(.*(Launcher|NetEase Game Security).*)$
windowrule = fullscreen, content:game
windowrule = immediate, content:game