fix(hyprland): proper rule syntax for 0.52.1 and re-enable autostart

- Removed 'on/off' suffixes from window rules.
- Replaced 'match:' with proper colon syntax for selectors.
- Re-enabled swww, waybar, and boot scripts.
This commit is contained in:
Bernardo Magri
2026-04-05 14:30:46 +01:00
parent 1fa60ed64a
commit c336f528a8
19 changed files with 74 additions and 74 deletions

View File

@@ -1,2 +1,2 @@
windowrulev2 = no_screen_share on, match:class ^(1[p|P]assword)$ windowrulev2 = noscreenshare, class:^(1[p|P]assword)$
windowrulev2 = tag +floating-window, match:class ^(1[p|P]assword)$ windowrulev2 = tag +floating-window, class:^(1[p|P]assword)$

View File

@@ -1,6 +1,6 @@
windowrulev2 = no_screen_share on, match:class ^(Bitwarden)$ windowrulev2 = noscreenshare, class:^(Bitwarden)$
windowrulev2 = tag +floating-window, match:class ^(Bitwarden)$ windowrulev2 = tag +floating-window, class:^(Bitwarden)$
# Bitwarden Chrome Extension # Bitwarden Chrome Extension
windowrulev2 = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default windowrulev2 = noscreenshare, class:chrome-nngceckbapebfimnlniiiahkandclblb-Default
windowrulev2 = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default windowrulev2 = tag +floating-window, class:chrome-nngceckbapebfimnlniiiahkandclblb-Default

View File

@@ -1,16 +1,16 @@
# Browser types # Browser types
windowrulev2 = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) windowrulev2 = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
windowrulev2 = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) windowrulev2 = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
windowrulev2 = tag -default-opacity, match:tag chromium-based-browser windowrulev2 = tag -default-opacity, tag:chromium-based-browser
windowrulev2 = tag -default-opacity, match:tag firefox-based-browser windowrulev2 = tag -default-opacity, tag:firefox-based-browser
# Video apps: remove chromium browser tag so they don't get opacity applied # Video apps: remove chromium browser tag so they don't get opacity applied
windowrulev2 = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) windowrulev2 = tag -chromium-based-browser, class:(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
windowrulev2 = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) windowrulev2 = tag -default-opacity, class:(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)
# Force chromium-based browsers into a tile to deal with --app bug # Force chromium-based browsers into a tile to deal with --app bug
windowrulev2 = tile on, match:tag chromium-based-browser windowrulev2 = tile, tag:chromium-based-browser
# Only a subtle opacity change, but not for video sites # Only a subtle opacity change, but not for video sites
windowrulev2 = opacity 1.0 0.97, match:tag chromium-based-browser windowrulev2 = opacity 1.0 0.97, tag:chromium-based-browser
windowrulev2 = opacity 1.0 0.97, match:tag firefox-based-browser windowrulev2 = opacity 1.0 0.97, tag:firefox-based-browser

View File

@@ -1,2 +1,2 @@
# Focus floating DaVinci Resolve dialog windows # Focus floating DaVinci Resolve dialog windows
windowrulev2 = stay_focused on, match:class .*[Rr]esolve.*, match:float 1 windowrulev2 = stayfocused, class:.*[Rr]esolve.*, float:1

View File

@@ -1,5 +1,5 @@
windowrule { windowrule {
name = geforce name = geforce
match:class = GeForceNOW class:= GeForceNOW
idle_inhibit = fullscreen idle_inhibit = fullscreen
} }

View File

@@ -1,2 +1,2 @@
# Remove 1px border around hyprshot screenshots # Remove 1px border around hyprshot screenshots
layerrule = no_anim = true, match:namespace selection layerrule = noanim, namespace:selection

View File

@@ -1,4 +1,4 @@
# Float LocalSend and fzf file picker # Float LocalSend and fzf file picker
windowrulev2 = float on, match:class (Share|localsend) windowrulev2 = float, class:(Share|localsend)
windowrulev2 = center on, match:class (Share|localsend) windowrulev2 = center, class:(Share|localsend)
windowrulev2 = size 1100 700, match:class localsend windowrulev2 = size 1100 700, class:localsend

View File

@@ -1,6 +1,6 @@
windowrule { windowrule {
name = moonlight name = moonlight
match:class = com.moonlight_stream.Moonlight class:= com.moonlight_stream.Moonlight
fullscreen = 1 fullscreen = 1
idle_inhibit = fullscreen idle_inhibit = fullscreen
} }

View File

@@ -1,10 +1,10 @@
# Picture-in-picture overlays # Picture-in-picture overlays
windowrulev2 = tag +pip, match:title (Picture.?in.?[Pp]icture) windowrulev2 = tag +pip, title:(Picture.?in.?[Pp]icture)
windowrulev2 = tag -default-opacity, match:tag pip windowrulev2 = tag -default-opacity, tag:pip
windowrulev2 = float on, match:tag pip windowrulev2 = float, tag:pip
windowrulev2 = pin on, match:tag pip windowrulev2 = pin, tag:pip
windowrulev2 = size 600 338, match:tag pip windowrulev2 = size 600 338, tag:pip
windowrulev2 = keep_aspect_ratio on, match:tag pip windowrulev2 = keep_aspect_ratio on, tag:pip
windowrulev2 = border_size 0, match:tag pip windowrulev2 = border_size 0, tag:pip
windowrulev2 = opacity 1 1, match:tag pip windowrulev2 = opacity 1 1, tag:pip
windowrulev2 = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip windowrulev2 = move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip

View File

@@ -1,2 +1,2 @@
windowrulev2 = tag -default-opacity, match:class qemu windowrulev2 = tag -default-opacity, class:qemu
windowrulev2 = opacity 1 1, match:class qemu windowrulev2 = opacity 1 1, class:qemu

View File

@@ -1,4 +1,4 @@
windowrulev2 = fullscreen on, match:class com.libretro.RetroArch windowrulev2 = fullscreen, class:com.libretro.RetroArch
windowrulev2 = tag -default-opacity, match:class com.libretro.RetroArch windowrulev2 = tag -default-opacity, class:com.libretro.RetroArch
windowrulev2 = opacity 1 1, match:class com.libretro.RetroArch windowrulev2 = opacity 1 1, class:com.libretro.RetroArch
windowrulev2 = idle_inhibit fullscreen, match:class com.libretro.RetroArch windowrulev2 = idleinhibit fullscreen, class:com.libretro.RetroArch

View File

@@ -1,8 +1,8 @@
# Float Steam # Float Steam
windowrulev2 = float on, match:class steam windowrulev2 = float, class:steam
windowrulev2 = center on, match:class steam, match:title Steam windowrulev2 = center, class:steam, title:Steam
windowrulev2 = tag -default-opacity, match:class steam.* windowrulev2 = tag -default-opacity, class:steam.*
windowrulev2 = opacity 1 1, match:class steam.* windowrulev2 = opacity 1 1, class:steam.*
windowrulev2 = size 1100 700, match:class steam, match:title Steam windowrulev2 = size 1100 700, class:steam, title:Steam
windowrulev2 = size 460 800, match:class steam, match:title Friends List windowrulev2 = size 460 800, class:steam, title:Friends List
windowrulev2 = idle_inhibit fullscreen, match:class steam windowrulev2 = idleinhibit fullscreen, class:steam

View File

@@ -1,23 +1,23 @@
# Floating windows # Floating windows
windowrulev2 = float on, match:tag floating-window windowrulev2 = float, tag:floating-window
windowrulev2 = center on, match:tag floating-window windowrulev2 = center, tag:floating-window
windowrulev2 = size 875 600, match:tag floating-window windowrulev2 = size 875 600, tag:floating-window
windowrulev2 = tag +floating-window, match:class (org.nomarchy.bluetui|org.nomarchy.impala|org.nomarchy.wiremix|org.nomarchy.btop|org.nomarchy.terminal|org.nomarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Nomarchy|About|TUI.float|imv|mpv) windowrulev2 = tag +floating-window, class:(org.nomarchy.bluetui|org.nomarchy.impala|org.nomarchy.wiremix|org.nomarchy.btop|org.nomarchy.terminal|org.nomarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Nomarchy|About|TUI.float|imv|mpv)
windowrulev2 = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) windowrulev2 = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)
windowrulev2 = float on, match:class org.gnome.Calculator windowrulev2 = float, class:org.gnome.Calculator
# Fullscreen screensaver # Fullscreen screensaver
windowrulev2 = fullscreen on, match:class org.nomarchy.screensaver windowrulev2 = fullscreen, class:org.nomarchy.screensaver
windowrulev2 = float on, match:class org.nomarchy.screensaver windowrulev2 = float, class:org.nomarchy.screensaver
windowrulev2 = animation slide, match:class org.nomarchy.screensaver windowrulev2 = animation slide, class:org.nomarchy.screensaver
# No transparency on media windows # No transparency on media windows
windowrulev2 = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ windowrulev2 = tag -default-opacity, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
windowrulev2 = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ windowrulev2 = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
# Popped window rounding # Popped window rounding
windowrulev2 = rounding 8, match:tag pop windowrulev2 = rounding 8, tag:pop
# Prevent idle while open # Prevent idle while open
windowrulev2 = idle_inhibit always, match:tag noidle windowrulev2 = idleinhibit always, tag:noidle

View File

@@ -1,2 +1,2 @@
# Prevent Telegram from stealing focus on new messages # Prevent Telegram from stealing focus on new messages
windowrulev2 = focus_on_activate off, match:class org.telegram.desktop windowrulev2 = focusonactivate off, class:org.telegram.desktop

View File

@@ -1,4 +1,4 @@
# Define terminal tag to style them uniformly # Define terminal tag to style them uniformly
windowrulev2 = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) windowrulev2 = tag +terminal, class:(Alacritty|kitty|com.mitchellh.ghostty)
windowrulev2 = tag -default-opacity, match:tag terminal windowrulev2 = tag -default-opacity, tag:terminal
windowrulev2 = opacity 0.97 0.9, match:tag terminal windowrulev2 = opacity 0.97 0.9, tag:terminal

View File

@@ -1,2 +1,2 @@
# Application-specific animation # Application-specific animation
layerrule = no_anim = true, match:namespace walker layerrule = noanim, namespace:walker

View File

@@ -1,6 +1,6 @@
# Webcam overlay for screen recording # Webcam overlay for screen recording
windowrulev2 = float on, match:title WebcamOverlay windowrulev2 = float, title:WebcamOverlay
windowrulev2 = pin on, match:title WebcamOverlay windowrulev2 = pin, title:WebcamOverlay
windowrulev2 = no_initial_focus on, match:title WebcamOverlay windowrulev2 = noinitialfocus, title:WebcamOverlay
windowrulev2 = no_dim on, match:title WebcamOverlay windowrulev2 = nodim, title:WebcamOverlay
windowrulev2 = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay windowrulev2 = move (monitor_w-window_w-40) (monitor_h-window_h-40), title:WebcamOverlay

View File

@@ -1,15 +1,15 @@
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Hyprland 0.53+ syntax # Hyprland 0.53+ syntax
windowrulev2 = suppress_event maximize, match:class .* windowrulev2 = suppress_event maximize, class:.*
# Tag all windows for default opacity (apps can override with -default-opacity tag) # Tag all windows for default opacity (apps can override with -default-opacity tag)
windowrulev2 = tag +default-opacity, match:class .* windowrulev2 = tag +default-opacity, class:.*
# Fix some dragging issues with XWayland # Fix some dragging issues with XWayland
windowrulev2 = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 windowrulev2 = nofocus, class:^$, title:^$, xwayland:1, float:1, fullscreen:0, pin:0
# App-specific tweaks (may remove default-opacity tag) # App-specific tweaks (may remove default-opacity tag)
source = ~/.config/nomarchy/default/hypr/apps.conf source = ~/.config/nomarchy/default/hypr/apps.conf
# Apply default opacity after apps have had a chance to opt out # Apply default opacity after apps have had a chance to opt out
windowrulev2 = opacity 0.97 0.9, match:tag default-opacity windowrulev2 = opacity 0.97 0.9, tag:default-opacity

View File

@@ -25,9 +25,9 @@ in
"col.inactive_border" = "rgb(${config.colorScheme.palette.base03})"; "col.inactive_border" = "rgb(${config.colorScheme.palette.base03})";
}; };
"exec-once" = [ "exec-once" = [
# "swww-daemon & sleep 0.5 && swww img ${activeWallpaper} --transition-type none" "swww-daemon & sleep 0.5 && swww img ${activeWallpaper} --transition-type none"
# "nomarchy-on-boot" "nomarchy-on-boot"
# "nomarchy-welcome" "nomarchy-welcome"
"alacritty" "alacritty"
] ++ (lib.optional config.nomarchy.toggles.waybar "waybar"); ] ++ (lib.optional config.nomarchy.toggles.waybar "waybar");
"bind" = [ "bind" = [