From 923b884eff86d0e423d809cbf92454c7a37bb9ca Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Sun, 5 Jul 2026 14:59:22 +0100 Subject: [PATCH] gaming: pin Steam Big Picture + games to DP-1/ws3 Big Picture shares the plain `steam` WM_CLASS, so it opened on whatever monitor the cursor was on rather than the streamed one; match its title instead and pin to ws3 (DP-1's persistent workspace, what the stream captures). Move the steam_app_ game rule from ws6 to ws3 too so games and Big Picture share one streamed workspace and launching a game doesn't flip DP-1 to a different workspace. Co-Authored-By: Claude Opus 4.8 (1M context) --- home/konishi/default.nix | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/home/konishi/default.nix b/home/konishi/default.nix index 3a0c6ff..790771c 100644 --- a/home/konishi/default.nix +++ b/home/konishi/default.nix @@ -62,13 +62,22 @@ "move 100%-w-20 100%-h-20, match:title egui-.*" # gaming: Steam/Proton titles run under XWayland with WM_CLASS - # steam_app_. Send them fullscreen to workspace 6 (DP-1, top-left) - # instead of opening tiled on whatever monitor Steam is on. + # steam_app_. Send them fullscreen to workspace 3 (DP-1) — the same + # streamed workspace as Big Picture below — instead of opening tiled on + # whatever monitor Steam is on. # Native (non-Proton) games have their own class — grab it with # `hyprctl clients | grep -iE "class|title"` while the game runs and add a # matching line here. - "workspace 6, match:class steam_app_.*" + "workspace 3, match:class steam_app_.*" "fullscreen on, match:class steam_app_.*" + + # Steam Big Picture shares the plain `steam` WM_CLASS with the normal + # client, so match its title instead. Without this it opens on whatever + # monitor the cursor is on, not the streamed one. Pin it to ws3 — DP-1's + # normal persistent workspace, which is what the stream captures. `.` + # stands in for the literal spaces to keep the rule string unambiguous. + "workspace 3, match:title Steam.Big.Picture.Mode" + "fullscreen on, match:title Steam.Big.Picture.Mode" ]; render = {