- Add gaming-focus script: closes special workspace on DP-1 via
--batch dispatch (fixes async race), then focuses gaming workspace;
replaces raw workspace binding for SUPER+G
- Add game-focus-watcher: listens on Hyprland socket, auto-focuses
gaming workspace when a game launches regardless of current monitor
- Fix monitor 0 → DP-1 in mkGameRules and steam_app windowrules
- Fix steam dialogs leaking to normal workspaces (broaden workspace
rule from title:Steam to all class:steam)
- Extract gamingMonitor variable as single source of truth
- Drop redundant workspace dispatch after togglespecialworkspace to
prevent game freeze on special→gaming transition
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add game-focus-watcher: listens on hyprland socket, auto-focuses
gaming workspace when a game opens, closing any special workspace
on DP-1 first via --batch to avoid async dispatch races
- Add gaming-focus script: SUPER+G now handles special workspaces on
DP-1 regardless of focused monitor, with toggle-back behavior
- Fix steam windowrule to send all class:steam windows to special:steam,
not just title:Steam, preventing dialogs leaking to normal workspaces
- Fix monitor 0 -> monitor DP-1 in mkGameRules and steam_app rules
so games always launch at correct resolution on the gaming monitor
- Extract gamingMonitor variable as single source of truth
1. hyprbars are now disabled for steam
2. set float for steam extended windows (e.g., settings, friends list)
3. fix game `properties` forced to `gaming` workspace
Reverts the recent change that moved Steam into a named workspace. Steam is now handled via a special workspace again. The Waybar module configuration has also been updated to reflect this change.
Refactor Hyprland configuration to:
- Move Steam and Music from special workspaces to unique, named workspaces for better integration into the regular workflow.
- Update Waybar's workspace module to correctly display icons for these new named workspaces and filter them out from the special workspaces module.
- Implement a global blur effect for inactive windows, with a specific exception to keep Firefox windows fully opaque, enhancing focus on active content.
- Adds 'project8' and 'citadel' to the games list to correctly match Valve's Deadlock window class.
- Enables 'stayfocused' rule in mkGameRules to prevent focus loss.
Refactors 'modules/home/gaming.nix' to use a unified 'mkGameRules' function.
Applies full gaming rules (monitor 0, workspace gaming, immediate, fullscreen) to:
- Steam apps (class:^steam_app_\d+$)
- Gamescope, Lutris, Heroic
- Wine/Proton windows
Preserves manual overrides in the 'games' list.
- Implemented a modular gaming configuration with a local games list.
- Added dynamic window rules for games: monitor 0, dedicated 'gaming' workspace, fullscreen, immediate mode, and stayfocused.
- Enabled 'allow_tearing' to support immediate mode for reduced latency.
- Created a dedicated 'name:gaming' workspace bound to monitor 0 with a 'SUPER+G' shortcut.
- Enabled 'workspace_back_and_forth' for intuitive workspace toggling.
Configure xdg-desktop-portal-termfilechooser to use yazi (via ghostty) for file selection dialogs in portal-aware apps like Firefox. Includes a wrapper script and Hyprland window rules.