I have workspace rules that put certain workspaces on a particular monitor, like:
workspace = name:info, monitor:HDMI-A-1
Maybe I’m missing something, but it looks like I need to specify both monitor and workspace windowrule to put a window there under all conditions? I need to specify:
windowrule = monitor HDMI-A-1, class:some_window_class
windowrule = workspace name:info silent, class:some_window_class
If I omit the first line, the rule works while the HDMI-A-1 has focus. But if the focus is on HDMI-A-2 it ignores the workspace windowrule and just puts it on the HDMI-A-2. Looks like monitor selection has always priority and unspecified => current.
It would be much nicer if it respected the requested workspace (if no monitor rule present) and switched the monitor accordingly. Or if we really insisted on staying backwards compatible with the current behavior, maybe have a variant of a monitor rule that says “I’m flexible about the selected monitor” like using a monitor id of -1?
NOTE: It’s possible the latest windowrule rework already fixed this. I’m (unfortunately) still on 0.51.1
NOTE 2: While on the topic, I would also like to bump my (somewhat related) previous post on trying to avoid monitor focus change on silent window rules
Hyprland version
Hyprland 0.51.1 built from branch at commit 71a1216abcc7031776630a6d88f105605c4dc1c9 ([gha] Nix: update inputs).
Date: Mon Sep 22 20:54:03 2025
Tag: v0.51.1, commits: 6436
built against:
aquamarine 0.9.5
hyprlang 0.6.4
hyprutils 0.10.0
hyprcursor 0.1.13
hyprgraphics 0.2.0