server-desktop-01/docs/hyprland/version-history.md

79 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hyprland Version History — Breaking Config Changes
Focus: syntax changes that affect our config. Not a full changelog.
## Installed: 0.51.1 (Sept 2025)
## windowrule syntax timeline
### Pre-0.48 (old — do not use)
```
windowrule = float, ^(class-regex)$ # v1: positional class, no prefix
windowrulev2 = float, class:^(regex)$ # v2: explicit class: prefix
```
### 0.480.51 (CURRENT — use this)
Both `windowrule` and `windowrulev2` keywords work, but `windowrulev2` is deprecated.
Use `windowrule` with `match:` prefixed props. Patterns are plain strings or bare regexes —
do NOT use the old rulev2 `^(...)$` wrapping; Hyprland 0.51 rejects it as "Invalid rulev2".
```
windowrule = match:class classname, effect
windowrule = match:class classname, match:title titlepattern, effect1, effect2
windowrule = match:class ^org\.gnome\., rounding 12 # prefix regex — anchor ok, no outer ()
```
Props can come in any order relative to effects.
Boolean effects: `float`, `tile`, `pin`, `no_initial_focus` (no "on" suffix needed)
Value effects: `rounding 12`, `opacity 0.9`
### 0.52+ (not yet installed — do not use until upgrade)
Block syntax introduced:
```
windowrule {
name = optional-name
match:class = ^(regex)$
float = yes
rounding = 12
}
```
Anonymous flat block syntax also available:
```
windowrule = match:class regex, effect value
```
## layerrule syntax timeline
### Pre-0.48 (old)
```
layerrule = no_anim, ^(namespace)$ # positional namespace
```
### 0.480.51 (CURRENT — use this)
```
layerrule = match:namespace namespacename, no_anim
```
Same rule as windowrule: plain string or bare regex, no `^(...)$` wrapping.
### 0.52+ (block syntax)
```
layerrule {
match:namespace = ^(regex)$
no_anim = on
}
```
## Other notable changes
| Version | Change |
|---------|--------|
| 0.48 | `windowrulev2` deprecated; new `windowrule` with `match:` prefix |
| 0.48 | `layerrule` updated to use `match:namespace` prefix |
| 0.52+ | Block syntax for `windowrule` and `layerrule` |
## Upgrade checklist
When upgrading Hyprland:
1. Check `hyprland --version` (or `rpm -q hyprland`)
2. Scan release notes for "windowrule", "layerrule", "deprecated"
3. Update this file
4. Update the comment in `hyprland.conf` window rules section