# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # ========================================== # VARIABLES # ========================================== # Dialogs and utility apps that should float in the center $dialog_titles = ^(Open Form|Open File|Select a File|Choose a file|Open Workspace|Choose Directory|Save As|Save File|branchdialog|pinentry-gtk-2|Confirm to replace files|File Operation Progress|Open Files|Anmelden – Google Konten — Zen Browser)$ $dialog_classes = ^(pavucontrol|blueman-manager|nm-connection-editor|org.pulseaudio.pavucontrol)$ # App classes $steam = ^(steam)$ $gamescope = ^(gamescope)$ # ========================================== # GENERAL & FIXES # ========================================== # Ignore maximize requests from apps. You'll probably like this. # windowrule = suppress_event maximize, match:class .* # Fix some dragging issues with XWayland # windowrule = no_focus 1, match:class ^$, match:title ^$, match:xwayland 1, match:floating 1, match:fullscreen 0, match:pinned 0 windowrule = no_blur 1, match:class ^$, match:title ^$ # ========================================== # FLOATING & CENTERED DIALOGS # ========================================== # Make them float windowrule = float 1, match:title $dialog_titles windowrule = float 1, match:class $dialog_classes # Set to 800x600 windowrule = size 800 600, match:title $dialog_titles windowrule = size 800 600, match:class $dialog_classes # Center them on the screen windowrule = center 1, match:title $dialog_titles windowrule = center 1, match:class $dialog_classes # Disable blur windowrule = no_blur 1, match:title $dialog_titles windowrule = no_blur 1, match:class $dialog_classes # ========================================== # WORKSPACE ASSIGNMENTS # ========================================== # Normal Workspaces # windowrule = workspace 1, match:class ^(firefox)$ # windowrule = workspace 2, match:class ^(kitty)$ # windowrule = workspace 3, match:class ^(Code)$ windowrule = workspace 1, match:class $gamescope # Special Workspaces windowrule = workspace special:virtual, match:class ^(Spotify|spotify)$ windowrule = workspace special:discord, match:class ^(discord|vesktop)$ # ========================================== # APP-SPECIFIC RULES: STEAM & GAMING # ========================================== # windowrule = workspace 3 silent, match:class $steam, match:title ^(Steam)$ # Fixed sizes for specific Steam windows windowrule = size 400 800, match:title ^(Friends List)$, match:class $steam windowrule = size 1000 800, match:title ^(Steam Settings)$, match:class $steam windowrule = size 1000 800, match:title ^(Add Non-Steam Game)$, match:class $steam # Float and disable blur for Steam windows that aren't the main window windowrule = float 1, match:class $steam, match:title negative:^(Steam)$ windowrule = no_blur 1, match:class $steam, match:title negative:^(Steam)$ # windowrule = center 1, match:class $steam, match:title negative:^(Steam)$ # Allow tearing for games started with Gamescope windowrule = immediate 1, match:class $gamescope