From a849fe088396990f5bba83544c40bce202b64a78 Mon Sep 17 00:00:00 2001 From: August Date: Mon, 29 Dec 2025 18:43:00 -0600 Subject: [PATCH] Fixes for Hyprland 0.53.0 --- dots/.config/hypr/hyprland/general.conf | 2 +- dots/.config/hypr/hyprland/rules.conf | 264 ++++++++++++------------ 2 files changed, 133 insertions(+), 133 deletions(-) diff --git a/dots/.config/hypr/hyprland/general.conf b/dots/.config/hypr/hyprland/general.conf index 145cbb77c..aedba4578 100644 --- a/dots/.config/hypr/hyprland/general.conf +++ b/dots/.config/hypr/hyprland/general.conf @@ -145,7 +145,7 @@ misc { animate_mouse_windowdragging = false enable_swallow = false swallow_regex = (foot|kitty|allacritty|Alacritty) - new_window_takes_over_fullscreen = 2 + on_focus_under_fullscreen = 2 allow_session_lock_restore = true session_lock_xray = true initial_workspace_tracking = false diff --git a/dots/.config/hypr/hyprland/rules.conf b/dots/.config/hypr/hyprland/rules.conf index 3a3a01ef9..a41d1e0c4 100644 --- a/dots/.config/hypr/hyprland/rules.conf +++ b/dots/.config/hypr/hyprland/rules.conf @@ -1,165 +1,165 @@ # ######## Window rules ######## # Disable blur for xwayland context menus -windowrulev2 = noblur,class:^()$,title:^()$ +windowrule = match:class ^()$, match:title ^()$, no_blur on # Disable blur for every window -windowrulev2 = noblur, class:.* +windowrule = match:class .*, no_blur on # 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 = match:title ^(Open File)(.*)$, center on +windowrule = match:title ^(Open File)(.*)$, float on +windowrule = match:title ^(Select a File)(.*)$, center on +windowrule = match:title ^(Select a File)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, center on +windowrule = match:title ^(Choose wallpaper)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:title ^(Open Folder)(.*)$, center on +windowrule = match:title ^(Open Folder)(.*)$, float on +windowrule = match:title ^(Save As)(.*)$, center on +windowrule = match:title ^(Save As)(.*)$, float on +windowrule = match:title ^(Library)(.*)$, center on +windowrule = match:title ^(Library)(.*)$, float on +windowrule = match:title ^(File Upload)(.*)$, center on +windowrule = match:title ^(File Upload)(.*)$, float on +windowrule = match:title ^(.*)(wants to save)$, center on +windowrule = match:title ^(.*)(wants to save)$, float on +windowrule = match:title ^(.*)(wants to open)$, center on +windowrule = match:title ^(.*)(wants to open)$, float on +windowrule = match:class ^(blueberry\.py)$, float on +windowrule = match:class ^(guifetch)$ , float on # FlafyDev/guifetch +windowrule = match:class ^(pavucontrol)$, float on +windowrule = match:class ^(pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(pavucontrol)$, center on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, float on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, center on +windowrule = match:class ^(nm-connection-editor)$, float on +windowrule = match:class ^(nm-connection-editor)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(nm-connection-editor)$, center on +windowrule = match:class .*plasmawindowed.*, float on +windowrule = match:class kcm_.*, float on +windowrule = match:class .*bluedevilwizard, float on +windowrule = match:title .*Welcome, float on +windowrule = match:title ^(illogical-impulse Settings)$, float on +windowrule = match:title .*Shell conflicts.*, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:class ^(Zotero)$, float on +windowrule = match:class ^(Zotero)$, size (monitor_w*.45) (monitor_h*.45) # 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 = match:class ^(plasma-changeicons)$, float on +windowrule = match:class ^(plasma-changeicons)$, no_initial_focus on +windowrule = match:class ^(plasma-changeicons)$, move 999999 999999 # stupid dolphin copy -windowrulev2 = move 40 80, title:^(Copying — Dolphin)$ +windowrule = match:title ^(Copying — Dolphin)$, move 40 80 # Tiling -windowrulev2 = tile, class:^dev\.warp\.Warp$ +windowrule = match:class ^dev\.warp\.Warp$, tile on # 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 = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move (monitor_w*.73) (monitor_h*.72) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size (monitor_w*.25) (monitor_h*.25) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on # --- Tearing --- -windowrulev2 = immediate, title:.*\.exe -windowrulev2 = immediate, title:.*minecraft.* -windowrulev2 = immediate, class:^(steam_app).* +windowrule = match:title .*\.exe, immediate on +windowrule = match:title .*minecraft.*, immediate on +windowrule = match:class ^(steam_app).*, immediate on # Fix Jetbrain IDEs focus/rerendering problem -windowrulev2=noinitialfocus,class:^jetbrains-.*$,floating:1,title:^$|^\s$|^win\d+$ +windowrule = match:class ^jetbrains-.*$, match:float 1, match:title ^$|^\s$|^win\d+$, no_initial_focus on # No shadow for tiled windows (matches windows that are not floating). -windowrulev2 = noshadow, floating:0 +windowrule = match:float 0, no_shadow on # ######## 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 = match:namespace .*, xray on +# layerrule = match:namespace .*, no_anim on +layerrule = match:namespace walker, no_anim on +layerrule = match:namespace selection, no_anim on +layerrule = match:namespace overview, no_anim on +layerrule = match:namespace anyrun, no_anim on +layerrule = match:namespace indicator.*, no_anim on +layerrule = match:namespace osk, no_anim on +layerrule = match:namespace hyprpicker, no_anim on -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 = match:namespace noanim, no_anim on +layerrule = match:namespace gtk-layer-shell, blur on +layerrule = match:namespace gtk-layer-shell, ignore_alpha 0 +layerrule = match:namespace launcher, blur on +layerrule = match:namespace launcher, ignore_alpha 0.5 +layerrule = match:namespace notifications, blur on +layerrule = match:namespace notifications, ignore_alpha 0.69 +layerrule = match:namespace logout_dialog # wlogout, blur on # 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 = match:namespace sideleft.*, animation slide left +layerrule = match:namespace sideright.*, animation slide right +layerrule = match:namespace session[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace barcorner.*, blur on +layerrule = match:namespace barcorner.*, ignore_alpha 0.6 +layerrule = match:namespace dock[0-9]*, blur on +layerrule = match:namespace dock[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace overview[0-9]*, blur on +layerrule = match:namespace overview[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace cheatsheet[0-9]*, blur on +layerrule = match:namespace cheatsheet[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideright[0-9]*, blur on +layerrule = match:namespace sideright[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideleft[0-9]*, blur on +layerrule = match:namespace sideleft[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace osk[0-9]*, blur on +layerrule = match:namespace osk[0-9]*, ignore_alpha 0.6 # 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:wNotificationCenter -layerrule = noanim, quickshell:wOnScreenDisplay -layerrule = noanim, quickshell:wStartMenu -layerrule = ignorealpha 0, quickshell:wTaskView -layerrule = noanim, quickshell:wTaskView +layerrule = match:namespace quickshell:.*, blur_popups on +layerrule = match:namespace quickshell:.*, blur on +layerrule = match:namespace quickshell:.*, ignore_alpha 0.79 +layerrule = match:namespace quickshell:bar, animation slide +layerrule = match:namespace quickshell:actionCenter, no_anim on +layerrule = match:namespace quickshell:cheatsheet, animation slide bottom +layerrule = match:namespace quickshell:dock, animation slide bottom +layerrule = match:namespace quickshell:screenCorners, animation popin 120% +layerrule = match:namespace quickshell:lockWindowPusher, no_anim on +layerrule = match:namespace quickshell:notificationPopup, animation fade +layerrule = match:namespace quickshell:overlay, no_anim on +layerrule = match:namespace quickshell:overlay, ignore_alpha 1 +layerrule = match:namespace quickshell:overview, no_anim on +layerrule = match:namespace quickshell:osk, animation slide bottom +layerrule = match:namespace quickshell:polkit, no_anim on +layerrule = match:namespace quickshell:popup, xray on # No weird color for bar tooltips (this in theory should suffice) +layerrule = match:namespace quickshell:popup, ignore_alpha 1 # No weird color for bar tooltips (but somehow this is necessary) +layerrule = match:namespace quickshell:mediaControls, ignore_alpha 1 # Same as above +layerrule = match:namespace quickshell:reloadPopup, animation slide +layerrule = match:namespace quickshell:regionSelector, no_anim on +layerrule = match:namespace quickshell:screenshot, no_anim on +layerrule = match:namespace quickshell:session, blur on +layerrule = match:namespace quickshell:session, no_anim on +layerrule = match:namespace quickshell:session, ignore_alpha 0 +layerrule = match:namespace quickshell:sidebarRight, animation slide right +layerrule = match:namespace quickshell:sidebarLeft, animation slide left +layerrule = match:namespace quickshell:verticalBar, animation slide +layerrule = match:namespace quickshell:wallpaperSelector, animation slide top +layerrule = match:namespace quickshell:wNotificationCenter, no_anim on +layerrule = match:namespace quickshell:wOnScreenDisplay, no_anim on +layerrule = match:namespace quickshell:wStartMenu, no_anim on +layerrule = match:namespace quickshell:wTaskView, ignore_alpha 0 +layerrule = match:namespace quickshell:wTaskView, no_anim on # Launchers need to be FAST -layerrule = noanim, gtk4-layer-shell +layerrule = match:namespace gtk4-layer-shell, no_anim on