Static rules are evaluated once when the window is opened and never again. This essentially means that it is always the `initialTitle` and `initialClass` which will be found when matching on `title` and `class`, respectively.
> It is not possible to `float` (or any other static rule) a window based on a change in the `title` after the window has been created. This applies to all static rules listed here.
| persistentsize | Allows size persistence between application launches for floating windows. |
| fullscreenstate \[internal\] \[client\] | Sets the focused window's fullscreen mode and the one sent to the client, where internal and client can be `0` - none, `1` - maximize, `2` - fullscreen, `3` - maximize and fullscreen. |
| move \[x\] \[y\] | Moves a floating window (`x, y` -> int or %, e.g. `100` or `20%`.<br>You are also allowed to do `100%-` for the right/bottom anchor, e.g. `100%-20`. In addition, the option supports the subtraction of the window's size with `100%-w-`, e.g. `100%-w-20`. This results in a gap at the right/bottom edge of the screen to the window with the defined subtracted size). <br> Additionally, you can also do `cursor [x] [y]` where x and y are either pixels or percent. Percent is calculated from the window's size. Specify `onscreen` before other parameters to force the window into the screen (e.g. `move onscreen cursor 50% 50%`) |
| size \[w\] \[h\] | Resizes a floating window (`w, h` -> int or %, e.g. `1280, 720` or `50%, 50%`.<br>`<` and `>` may also be prefixed in conjunction, to specify respectively the maximum or minimum allowed size. (e.g. `<1280` or `<40%` -> maximum size, `>300` or `>10%` -> minimum size).<br>Note that int values in pixels will be scaled by your monitor's scaling factor. |
| center (\[opt\]) | If the window is floating, will center it on the monitor. Set opt to `1` to respect monitor reserved area. |
| pseudo | Pseudotiles a window. |
| monitor \[id\] | Sets the monitor on which a window should open. `id` can be either the id number or the name (e.g. `1` or `DP-1`). |
| workspace \[w\] | Sets the workspace on which a window should open (for workspace syntax, see [dispatchers->workspaces](../Dispatchers#workspaces)). <br> You can also set \[w\] to `unset`. This will unset all previous workspace rules applied to this window. Additionally you can add `silent` after the workspace to make the window open silently. |
| noinitialfocus | Disables the initial focus to the window |
| pin | Pins the window (i.e. show it on all workspaces). _Note: floating only_. |
| nomaxsize | Removes max size limitations. Especially useful with windows that report invalid max sizes (e.g. winecfg). |
| stayfocused | Forces focus on the window as long as it's visible. |
| group \[options\] | Sets window group properties. See the note below. |
| suppressevent \[types...\] | Ignores specific events from the window. Events are space separated, and can be: `fullscreen`, `maximize`, `activate`, `activatefocus`, `fullscreenoutput`. |
| animation \[style\] (\[opt\]) | Forces an animation onto a window, with a selected opt. Opt is optional. |
| bordercolor \[c\] | Force the bordercolor of the window. <br> Options for c: `color`/`color ... color angle` -> sets the active border color/gradient OR `color color`/`color ... color angle color ... color [angle]` -> sets the active and inactive border color/gradient of the window. See [variables->colors](../Variables#variable-types) for color definition. |
| idleinhibit \[mode\] | Sets an idle inhibit rule for the window. If active, apps like `hypridle` will not fire. Modes: `none`, `always`, `focus`, `fullscreen`. |
| opacity \[a\] | Additional opacity multiplier. Options for a: `float` -> sets an overall opacity, `float float` -> sets activeopacity and inactiveopacity respectively, `float float float` -> sets activeopacity, inactiveopacity and fullscreenopacity respectively. |
| tag \[name\] | Applies the tag `name` to the window, use prefix `+`/`-` to set/unset flag, or no prefix to toggle the flag. |
| rounding \[int\] | Forces the application to have X pixels of rounding, ignoring the set default (in `decoration:rounding`). Has to be an int. |
| roundingpower \[float\] | Overrides the rounding power for the window (see `decoration:rounding_power`). |
| allowsinput \[on\] | Forces an XWayland window to receive input, even if it requests not to do so. (Might fix issues like Game Launchers not receiving focus for some reason) |
| dimaround \[on\] | Dims everything around the window. Please note that this rule is meant for floating windows and using it on tiled ones may result in strange behavior. |
| decorate \[on\] | Whether to draw window decorations or not |
| focusonactivate \[on\] | Whether Hyprland should focus an app that requests to be focused (an `activate` request). |
| keepaspectratio \[on\] | Forces aspect ratio when resizing window with the mouse. |
| nearestneighbor \[on\] | Forces the window to use [nearest neighbor](https://en.wikipedia.org/wiki/Image_scaling#Nearest-neighbor_interpolation) filtering. |
| noanim \[on\] | Disables the animations for the window. |
| noblur \[on\] | Disables blur for the window. |
| noborder \[on\] | Disables borders for the window. |
| nodim \[on\] | Disables window dimming for the window. |
| nofocus \[on\] | Disables focus to the window. |
| nofollowmouse \[on\] | Prevents the window from being focused when the mouse moves over it when `input:follow_mouse=1` is set. |
| nomaxsize \[on\] | Disables max size for the window. |
| norounding \[on\] | Disables rounding for the window. |
| noshadow \[on\] | Disables shadows for the window. |
| noshortcutsinhibit \[on\] | Disallows the app from [inhibiting your shortcuts](https://wayland.app/protocols/keyboard-shortcuts-inhibit-unstable-v1). |
| opaque \[on\] | Forces the window to be opaque. |
| forcergbx \[on\] | Forces Hyprland to ignore the alpha channel on the whole window's surfaces, effectively making it _actually, fully 100% opaque_. |
| syncfullscreen \[on\] | Whether the fullscreen mode should always be the same as the one sent to the window (will only take effect on the next fullscreen mode change). |
| immediate \[on\] | Forces the window to allow tearing. See [the Tearing page](../Tearing). |
| xray \[on\] | Sets blur xray mode for the window. |
| renderunfocused | Forces the window to think it's being rendered when it's not visible. See also [Variables - Misc](../Variables/#Misc) for setting `render_unfocused_fps`. |
| scrollmouse \[float\] | Forces the window to override the variable `input:scroll_factor`. |
| scrolltouchpad \[float\] | Forces the window to override the variable `input:touchpad:scroll_factor`. |
| noscreenshare \[on\] | Hides the window and its popups from screen sharing by drawing black rectangles in their place. The rectangles are drawn even if other windows are above. |
-`override` \[other options\] - Override other `group` rules, e.g. You can make all windows in a particular workspace open as a group, and use `group override barred` to make windows with specific titles open as normal windows.
The `tag` rule can only manipulate dynamic tags, and the `tagwindow` dispatcher only works with static tags (i.e. once the dispatcher is called, dynamic tags will be cleared).
windowrule = animation popin, class:kitty # Set the animation style for kitty
windowrule = noblur, class:firefox # Disable blur for firefox
windowrule = move cursor -50% -50%, class:kitty # Move kitty to the center of the cursor
windowrule = bordercolor rgb(FF0000) rgb(880808), fullscreen:1 # Set bordercolor to red if window is fullscreen
windowrule = bordercolor rgb(00FF00), fullscreenstate:* 1 # Set bordercolor to green if window's client fullscreen state is 1(maximize) (internal state can be anything)
windowrule = bordercolor rgb(FFFF00), title:.*Hyprland.* # Set bordercolor to yellow when title contains Hyprland
windowrule = opacity 1.0 override 0.5 override 0.8 override, class:kitty # Set opacity to 1.0 active, 0.5 inactive and 0.8 fullscreen for kitty
windowrule = rounding 10, class:kitty # Set rounding to 10 for kitty
| unset | Removes all layerRules previously set for a select namespace RegEx. Please note it has to match _exactly_. |
| noanim | Disables animations. |
| blur | Enables blur for the layer. |
| blurpopups | Enables blur for the popups. |
| ignorealpha \[a\] | Makes blur ignore pixels with opacity of `a` or lower. `a` is float value from `0` to `1`. `a = 0` if unspecified. |
| ignorezero | Makes blur ignore fully transparent pixels. Same as `ignorealpha 0`. |
| dimaround | Dims everything behind the layer. |
| xray \[on\] | Sets the blur xray mode for a layer. `0` for off, `1` for on, `unset` for default. |
| animation \[style\] | Allows you to set a specific animation style for this layer. |
| order \[n\] | Sets the order relative to other layers. A higher `n` means closer to the edge of the monitor. Can be negative. `n = 0` if unspecified. |
| abovelock \[interactable\] | Renders the layer above the lockscreen when the session is locked. If set to `true`, you can interact with the layer on the lockscreen, otherwise it will only be rendered above it. |