hyprland: migrate to new windowrule syntax

This commit is contained in:
Moeta Yuko
2025-11-23 11:58:56 +00:00
parent c78c363388
commit 55152aee4b
3 changed files with 132 additions and 132 deletions
+1 -1
View File
@@ -31,4 +31,4 @@ plugin {
}
}
windowrulev2 = bordercolor rgba(FFB2BCAA) rgba(FFB2BC77),pinned:1
windowrule = border_color rgba(FFB2BCAA) rgba(FFB2BC77), match:pin 1
+130 -130
View File
@@ -1,165 +1,165 @@
# ######## Window rules ########
# Uncomment to apply global transparency to all windows:
# windowrulev2 = opacity 0.89 override 0.89 override, class:.*
# windowrule = opacity 0.89 override 0.89 override, match:class .*
# Disable blur for xwayland context menus
windowrulev2 = noblur,class:^()$,title:^()$
windowrule = no_blur on, match:class ^()$, match:title ^()$
# Disable blur for all xwayland apps
# windowrulev2 = noblur, xwayland:1
# windowrule = no_blur on, match:xwayland 1
# Disable blur for every window
windowrulev2 = noblur, class:.*
windowrule = no_blur on, match:class .*
# Floating
windowrulev2 = center, title:^(Open File)(.*)$
windowrulev2 = float, title:^(Open File)(.*)$
windowrulev2 = center, title:^(Select a File)(.*)$
windowrulev2 = float, title:^(Select a File)(.*)$
windowrulev2 = center, title:^(Choose wallpaper)(.*)$
windowrulev2 = float, title:^(Choose wallpaper)(.*)$
windowrulev2 = size 60% 65%, title:^(Choose wallpaper)(.*)$
windowrulev2 = center, title:^(Open Folder)(.*)$
windowrulev2 = float, title:^(Open Folder)(.*)$
windowrulev2 = center, title:^(Save As)(.*)$
windowrulev2 = float, title:^(Save As)(.*)$
windowrulev2 = center, title:^(Library)(.*)$
windowrulev2 = float, title:^(Library)(.*)$
windowrulev2 = center, title:^(File Upload)(.*)$
windowrulev2 = float, title:^(File Upload)(.*)$
windowrulev2 = center, title:^(.*)(wants to save)$
windowrulev2 = float, title:^(.*)(wants to save)$
windowrulev2 = center, title:^(.*)(wants to open)$
windowrulev2 = float, title:^(.*)(wants to open)$
windowrulev2 = float, class:^(blueberry\.py)$
windowrulev2 = float, class:^(guifetch)$ # FlafyDev/guifetch
windowrulev2 = float, class:^(pavucontrol)$
windowrulev2 = size 45%, class:^(pavucontrol)$
windowrulev2 = center, class:^(pavucontrol)$
windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = size 45%, class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = center, class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = float, class:^(nm-connection-editor)$
windowrulev2 = size 45%, class:^(nm-connection-editor)$
windowrulev2 = center, class:^(nm-connection-editor)$
windowrulev2 = float, class:.*plasmawindowed.*
windowrulev2 = float, class:kcm_.*
windowrulev2 = float, class:.*bluedevilwizard
windowrulev2 = float, title:.*Welcome
windowrulev2 = float, title:^(illogical-impulse Settings)$
windowrulev2 = float, title:.*Shell conflicts.*
windowrulev2 = float, class:org.freedesktop.impl.portal.desktop.kde
windowrulev2 = size 60% 65%, class:org.freedesktop.impl.portal.desktop.kde
windowrulev2 = float, class:^(Zotero)$
windowrulev2 = size 45%, class:^(Zotero)$
windowrule = center on, match:title ^(Open File)(.*)$
windowrule = float on, match:title ^(Open File)(.*)$
windowrule = center on, match:title ^(Select a File)(.*)$
windowrule = float on, match:title ^(Select a File)(.*)$
windowrule = center on, match:title ^(Choose wallpaper)(.*)$
windowrule = float on, match:title ^(Choose wallpaper)(.*)$
windowrule = size 60% 65%, match:title ^(Choose wallpaper)(.*)$
windowrule = center on, match:title ^(Open Folder)(.*)$
windowrule = float on, match:title ^(Open Folder)(.*)$
windowrule = center on, match:title ^(Save As)(.*)$
windowrule = float on, match:title ^(Save As)(.*)$
windowrule = center on, match:title ^(Library)(.*)$
windowrule = float on, match:title ^(Library)(.*)$
windowrule = center on, match:title ^(File Upload)(.*)$
windowrule = float on, match:title ^(File Upload)(.*)$
windowrule = center on, match:title ^(.*)(wants to save)$
windowrule = float on, match:title ^(.*)(wants to save)$
windowrule = center on, match:title ^(.*)(wants to open)$
windowrule = float on, match:title ^(.*)(wants to open)$
windowrule = float on, match:class ^(blueberry\.py)$
windowrule = float on, match:class ^(guifetch)$ # FlafyDev/guifetch
windowrule = float on, match:class ^(pavucontrol)$
windowrule = size 45%, match:class ^(pavucontrol)$
windowrule = center on, match:class ^(pavucontrol)$
windowrule = float on, match:class ^(org.pulseaudio.pavucontrol)$
windowrule = size 45%, match:class ^(org.pulseaudio.pavucontrol)$
windowrule = center on, match:class ^(org.pulseaudio.pavucontrol)$
windowrule = float on, match:class ^(nm-connection-editor)$
windowrule = size 45%, match:class ^(nm-connection-editor)$
windowrule = center on, match:class ^(nm-connection-editor)$
windowrule = float on, match:class .*plasmawindowed.*
windowrule = float on, match:class kcm_.*
windowrule = float on, match:class .*bluedevilwizard
windowrule = float on, match:title .*Welcome
windowrule = float on, match:title ^(illogical-impulse Settings)$
windowrule = float on, match:title .*Shell conflicts.*
windowrule = float on, match:class org.freedesktop.impl.portal.desktop.kde
windowrule = size 60% 65%, match:class org.freedesktop.impl.portal.desktop.kde
windowrule = float on, match:class ^(Zotero)$
windowrule = size 45%, match:class ^(Zotero)$
# Move
# kde-material-you-colors spawns a window when changing dark/light theme. This is to make sure it doesn't interfere at all.
windowrulev2 = float, class:^(plasma-changeicons)$
windowrulev2 = noinitialfocus, class:^(plasma-changeicons)$
windowrulev2 = move 999999 999999, class:^(plasma-changeicons)$
windowrule = float on, match:class ^(plasma-changeicons)$
windowrule = no_initial_focus on, match:class ^(plasma-changeicons)$
windowrule = move 999999 999999, match:class ^(plasma-changeicons)$
# stupid dolphin copy
windowrulev2 = move 40 80, title:^(Copying — Dolphin)$
windowrule = move 40 80, match:title ^(Copying — Dolphin)$
# Tiling
windowrulev2 = tile, class:^dev\.warp\.Warp$
windowrule = tile on, match:class ^dev\.warp\.Warp$
# Picture-in-Picture
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = keepaspectratio, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = move 73% 72%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = size 25%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrulev2 = pin, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = float on, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = keep_aspect_ratio on, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = move 73% 72%, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = size 25%, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = float on, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = pin on, match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
# --- Tearing ---
windowrulev2 = immediate, title:.*\.exe
windowrulev2 = immediate, title:.*minecraft.*
windowrulev2 = immediate, class:^(steam_app).*
windowrule = immediate on, match:title .*\.exe
windowrule = immediate on, match:title .*minecraft.*
windowrule = immediate on, match:class ^(steam_app).*
# Fix Jetbrain IDEs focus/rerendering problem
windowrulev2=noinitialfocus,class:^jetbrains-.*$,floating:1,title:^$|^\s$|^win\d+$
windowrule=no_initial_focus on, match:class ^jetbrains-.*$, match:float 1,match:title ^$|^\s$|^win\d+$
# No shadow for tiled windows (matches windows that are not floating).
windowrulev2 = noshadow, floating:0
windowrule = no_shadow on, match:float 0
# ######## Workspace rules ########
workspace = special:special, gapsout:30
# ######## Layer rules ########
layerrule = xray 1, .*
# layerrule = noanim, .*
layerrule = noanim, walker
layerrule = noanim, selection
layerrule = noanim, overview
layerrule = noanim, anyrun
layerrule = noanim, indicator.*
layerrule = noanim, osk
layerrule = noanim, hyprpicker
layerrule = xray 1, match:namespace .*
# layerrule = no_anim on, .*
layerrule = no_anim on, match:namespace walker
layerrule = no_anim on, match:namespace selection
layerrule = no_anim on, match:namespace overview
layerrule = no_anim on, match:namespace anyrun
layerrule = no_anim on, match:namespace indicator.*
layerrule = no_anim on, match:namespace osk
layerrule = no_anim on, match:namespace hyprpicker
layerrule = noanim, noanim
layerrule = blur, gtk-layer-shell
layerrule = ignorezero, gtk-layer-shell
layerrule = blur, launcher
layerrule = ignorealpha 0.5, launcher
layerrule = blur, notifications
layerrule = ignorealpha 0.69, notifications
layerrule = blur, logout_dialog # wlogout
layerrule = no_anim on, match:namespace no_anim on
layerrule = blur on, match:namespace gtk-layer-shell
layerrule = ignore_alpha 0, match:namespace gtk-layer-shell
layerrule = blur on, match:namespace launcher
layerrule = ignore_alpha 0.5, match:namespace launcher
layerrule = blur on, match:namespace notifications
layerrule = ignore_alpha 0.69, match:namespace notifications
layerrule = blur on, match:namespace logout_dialog # wlogout
# ags
layerrule = animation slide left, sideleft.*
layerrule = animation slide right, sideright.*
layerrule = blur, session[0-9]*
layerrule = blur, bar[0-9]*
layerrule = ignorealpha 0.6, bar[0-9]*
layerrule = blur, barcorner.*
layerrule = ignorealpha 0.6, barcorner.*
layerrule = blur, dock[0-9]*
layerrule = ignorealpha 0.6, dock[0-9]*
layerrule = blur, indicator.*
layerrule = ignorealpha 0.6, indicator.*
layerrule = blur, overview[0-9]*
layerrule = ignorealpha 0.6, overview[0-9]*
layerrule = blur, cheatsheet[0-9]*
layerrule = ignorealpha 0.6, cheatsheet[0-9]*
layerrule = blur, sideright[0-9]*
layerrule = ignorealpha 0.6, sideright[0-9]*
layerrule = blur, sideleft[0-9]*
layerrule = ignorealpha 0.6, sideleft[0-9]*
layerrule = blur, indicator.*
layerrule = ignorealpha 0.6, indicator.*
layerrule = blur, osk[0-9]*
layerrule = ignorealpha 0.6, osk[0-9]*
layerrule = animation slide left, match:namespace sideleft.*
layerrule = animation slide right, match:namespace sideright.*
layerrule = blur on, match:namespace session[0-9]*
layerrule = blur on, match:namespace bar[0-9]*
layerrule = ignore_alpha 0.6, match:namespace bar[0-9]*
layerrule = blur on, match:namespace barcorner.*
layerrule = ignore_alpha 0.6, match:namespace barcorner.*
layerrule = blur on, match:namespace dock[0-9]*
layerrule = ignore_alpha 0.6, match:namespace dock[0-9]*
layerrule = blur on, match:namespace indicator.*
layerrule = ignore_alpha 0.6, match:namespace indicator.*
layerrule = blur on, match:namespace overview[0-9]*
layerrule = ignore_alpha 0.6, match:namespace overview[0-9]*
layerrule = blur on, match:namespace cheatsheet[0-9]*
layerrule = ignore_alpha 0.6, match:namespace cheatsheet[0-9]*
layerrule = blur on, match:namespace sideright[0-9]*
layerrule = ignore_alpha 0.6, match:namespace sideright[0-9]*
layerrule = blur on, match:namespace sideleft[0-9]*
layerrule = ignore_alpha 0.6, match:namespace sideleft[0-9]*
layerrule = blur on, match:namespace indicator.*
layerrule = ignore_alpha 0.6, match:namespace indicator.*
layerrule = blur on, match:namespace osk[0-9]*
layerrule = ignore_alpha 0.6, match:namespace osk[0-9]*
# Quickshell
layerrule = blurpopups, quickshell:.*
layerrule = blur, quickshell:.*
layerrule = ignorealpha 0.79, quickshell:.*
layerrule = animation slide, quickshell:bar
layerrule = noanim, quickshell:actionCenter
layerrule = animation slide bottom, quickshell:cheatsheet
layerrule = animation slide bottom, quickshell:dock
layerrule = animation popin 120%, quickshell:screenCorners
layerrule = noanim, quickshell:lockWindowPusher
layerrule = animation fade, quickshell:notificationPopup
layerrule = noanim, quickshell:overlay
layerrule = ignorealpha 1, quickshell:overlay
layerrule = noanim, quickshell:overview
layerrule = animation slide bottom, quickshell:osk
layerrule = noanim, quickshell:polkit
layerrule = xray 0, quickshell:popup # No weird color for bar tooltips (this in theory should suffice)
layerrule = ignorealpha 1, quickshell:popup # No weird color for bar tooltips (but somehow this is necessary)
layerrule = ignorealpha 1, quickshell:mediaControls # Same as above
layerrule = animation slide, quickshell:reloadPopup
layerrule = noanim, quickshell:regionSelector
layerrule = noanim, quickshell:screenshot
layerrule = blur, quickshell:session
layerrule = noanim, quickshell:session
layerrule = ignorealpha 0, quickshell:session
layerrule = animation slide right, quickshell:sidebarRight
layerrule = animation slide left, quickshell:sidebarLeft
layerrule = animation slide, quickshell:verticalBar
layerrule = animation slide top, quickshell:wallpaperSelector
layerrule = noanim, quickshell:wOnScreenDisplay
layerrule = blur_popups on, match:namespace quickshell:.*
layerrule = blur on, match:namespace quickshell:.*
layerrule = ignore_alpha 0.79, match:namespace quickshell:.*
layerrule = animation slide, match:namespace quickshell:bar
layerrule = no_anim on, match:namespace quickshell:actionCenter
layerrule = animation slide bottom, match:namespace quickshell:cheatsheet
layerrule = animation slide bottom, match:namespace quickshell:dock
layerrule = animation popin 120%, match:namespace quickshell:screenCorners
layerrule = no_anim on, match:namespace quickshell:lockWindowPusher
layerrule = animation fade, match:namespace quickshell:notificationPopup
layerrule = no_anim on, match:namespace quickshell:overlay
layerrule = ignore_alpha 1, match:namespace quickshell:overlay
layerrule = no_anim on, match:namespace quickshell:overview
layerrule = animation slide bottom, match:namespace quickshell:osk
layerrule = no_anim on, match:namespace quickshell:polkit
layerrule = xray 0, match:namespace quickshell:popup # No weird color for bar tooltips (this in theory should suffice)
layerrule = ignore_alpha 1, match:namespace quickshell:popup # No weird color for bar tooltips (but somehow this is necessary)
layerrule = ignore_alpha 1, match:namespace quickshell:mediaControls # Same as above
layerrule = animation slide, match:namespace quickshell:reloadPopup
layerrule = no_anim on, match:namespace quickshell:regionSelector
layerrule = no_anim on, match:namespace quickshell:screenshot
layerrule = blur on, match:namespace quickshell:session
layerrule = no_anim on, match:namespace quickshell:session
layerrule = ignore_alpha 0, match:namespace quickshell:session
layerrule = animation slide right, match:namespace quickshell:sidebarRight
layerrule = animation slide left, match:namespace quickshell:sidebarLeft
layerrule = animation slide, match:namespace quickshell:verticalBar
layerrule = animation slide top, match:namespace quickshell:wallpaperSelector
layerrule = no_anim on, match:namespace quickshell:wOnScreenDisplay
# Launchers need to be FAST
layerrule = noanim, gtk4-layer-shell
layerrule = no_anim on, match:namespace gtk4-layer-shell
@@ -29,4 +29,4 @@ plugin {
}
}
windowrulev2 = bordercolor rgba({{colors.primary.default.hex_stripped}}AA) rgba({{colors.primary.default.hex_stripped}}77),pinned:1
windowrule = border_color rgba({{colors.primary.default.hex_stripped}}AA) rgba({{colors.primary.default.hex_stripped}}77), match:pin 1