Hyprland Godot Floating Window
The problem
Godot's Quick Run window can be annoying on Hyprland if you want it to float automatically.
At first, I tried matching the window title and adding `DEBUG` to the rule. That seemed reasonable, but it did not work reliably.
The reason is simple: Godot creates the window before it appends `DEBUG` to the title. By the time the title changes, Hyprland has already seen the original window and made its decision.
>Why title matching fails
Window rules are easiest to write when the title is stable.
Godot's debug window is not stable.
It starts as one window, then updates its title later. If your rule only matches `DEBUG`, the first window creation slips through unmatched.
That means the rule is too late.
>The fix
Match the window's initial class instead of the title.
INIUTF-8windowrulev2 = float, initial_class = "negative:Godot"
That was the fix in my setup.
By targeting `initial_class`, Hyprland matches the window as soon as it appears, before Godot changes anything about the title. The floating rule is applied immediately, so the Quick Run window opens where you expect it.
>What I had tried
- Matching on `DEBUG` in the title
- Matching after the window was already visible
- Tweaking the rule order
None of those helped because the problem was not the rule order. It was the attribute I was matching against.
>Takeaway
If a window is created first and renamed later, title-based rules can be unreliable.
For Godot's Quick Run window on Hyprland, the stable signal is the initial class, so use `initial_class = "negative:Godot"` and let Hyprland catch it at creation time.
DONE