feat: Update hyprland window rules to v3

This commit is contained in:
2026-01-03 19:25:56 +11:00
parent 88cca79368
commit 933fd13639

View File

@@ -1,107 +1,237 @@
# Default floating rules to stop windows being too large or small
windowrulev2 = size <80% <80%,floating:1
windowrulev2 = size >50% >75%, class:(^org.kde.kdenlive$)
windowrule = float, class:(^xdg-desktop-portal-gtk$)
windowrule = size <80% <80%, class:(^xdg-desktop-portal-gtk$)
# windowrulev2 = size >50% >50%,floating:1
windowrule {
name = default-floating-size-limit
max_size = (monitor_w*0.8) (monitor_h*0.8)
match:float = 1
}
windowrule {
name = kdenlive-floating-size
min_size = (monitor_w*0.5) (monitor_h*0.75)
match:class = (^org.kde.kdenlive$)
}
windowrule {
name = xdg-desktop-portal-gtk-floating
float = on
max_size = (monitor_w*0.8) (monitor_h*0.8)
opacity = 1 override 1 override
stay_focused = on
match:class = (^xdg-desktop-portal-gtk$)
}
windowrule {
name = floating-windowrule-1
float = on
max_size = (monitor_w*0.8) (monitor_h*0.8)
center = on
match:class = (float)
}
windowrule {
name = floating-windowrule-2
float = on
size = (monitor_w*0.8) (monitor_h*0.8)
center = on
match:class = (float-80)
}
# windowrulev2 = float,class:(clipse)
# windowrulev2 = size 622 652,class:(clipse)
# windowrulev2 = opacity 1 override 1 override,class:(clipse)
windowrule {
name = swayimg-floating
float = on
size = (monitor_w*0.8)
match:class = (swayimg)
}
windowrulev2 = float,class:(float)
windowrule = size <80% <80%,class:(float)
windowrulev2 = float,class:(float-80)
windowrule = size 80% 80%,class:(float-80)
windowrule {
name = null-class-windowrule
no_blur = 1 noanim 1 noshadow 1
match:class = (^$)
}
windowrulev2 = float,class:(swayimg)
windowrulev2 = size 80%,class:(swayimg)
windowrule = noblur 1 noanim 1 noshadow 1, class:(^$)
windowrule = noblur 1 noanim 0 noshadow 1, title:(^$)
windowrule = nofocus 1, title:(^$)
windowrulev2 = float,class:(mpv)
windowrulev2 = float,class:^(brave-)(.*)(-.*)$
windowrulev2 = move onscreen cursor,class:^(brave-)(.*)(-.*)$
windowrule {
name = null-title-windowrule
no_blur = 1 noanim 0 noshadow 1
no_focus = 1
match:title = (^$)
}
windowrulev2 = move onscreen cursor -50% 0,class:^(com.nextcloud.desktopclient.nextcloud)$
windowrulev2 = float,class:^(com.nextcloud.desktopclient.nextcloud)$
windowrule = size 800 500,class:^(com.nextcloud.desktopclient.nextcloud)$
windowrule {
name = mpv-floating
float = on
match:class = (mpv)
}
workspace = special:gromit, gapsin:0, gapsout:0, shadow:0, on-created-empty: gromit-mpx -a
windowrule = noblur, class:^(Gromit-mpx)$
windowrule = opacity 1 override 1 override, class:^(Gromit-mpx)$
windowrule = noshadow, class:^(Gromit-mpx)$
windowrule = size 100% 100%, class:^(Gromit-mpx)$
windowrule {
name = brave-floating
float = on
move =
match:class = ^(brave-)(.*)(-.*)$
}
# Floating broken windows
windowrule = opacity 1 override 1 override, class:^(xdg-desktop-portal-gtk)$
windowrule = stayfocused, class:^(xdg-desktop-portal-gtk)$
windowrule = stayfocused, class:^(soffice)$
windowrule = stayfocused, class:^(virt-manager)$, title:^$
#windowrule = float 1, class:^(xdg-desktop-portal-gtk)$
windowrulev2 = stayfocused, class:^(Sparrow)$, title:^$, xwayland:1
windowrulev2 = focusonactivate 1, class:^(Sparrow)$, title:^$, xwayland:1
windowrulev2 = allowsinput 1, class:^(Sparrow)$, title:^$, xwayland:1
windowrulev2 = stayfocused, class:^(Sparrow)$, title:^$, xwayland:1
windowrule {
name = nextcloud-floating
move = (monitor_w-window_w) 45
float = on
size = 800 800
match:class = ^(com.nextcloud.desktopclient.nextcloud)$
}
windowrule {
name = soffice-focused
stay_focused = on
match:class = ^(soffice)$
}
windowrule {
name = virt-manager-focused
stay_focused = on
match:class = ^(virt-manager)$
match:title = ^$
}
windowrule {
name = sparrow-wallet-focused
opacity = 1 override 1 override
stay_focused = on
match:class = ^(Sparrow)$
match:title = ^$
}
# No Opacity windowrules
windowrule = opacity 1 override 1 override, class:^(brave-browser)$
windowrule = opacity 1 override 1 override, class:^(mpv)$
windowrule = opacity 1 override 1 override, class:^(virt-manager)$
windowrule = opacity 1 override 1 override, class:^(Bootstrap Studio)$
windowrule = opacity 1 override 1 override, class:^(Minecraft)(.*)$
windowrule = opacity 1 override 1 override, class:^(gimp)$
windowrule = opacity 1 override 1 override, class:^(com.obsproject.Studio)$
windowrule = opacity 1 override 1 override, class:^$
windowrule {
name = brave-browser-opacity
opacity = 1 override 1 override
match:class = ^(brave-browser)$
}
windowrule {
name = mpv-opacity
opacity = 1 override 1 override
match:class = ^(mpv)$
}
windowrule {
name = virt-manager-opacity
opacity = 1 override 1 override
match:class = ^(virt-manager)$
}
windowrule {
name = bootstrap-studio-opacity
opacity = 1 override 1 override
match:class = ^(Bootstrap Studio)$
}
windowrule {
name = minecraft-opacity
opacity = 1 override 1 override
match:class = ^(Minecraft)(.*)$
}
windowrule {
name = gimp-opacity
opacity = 1 override 1 override
match:class = ^(gimp)$
}
windowrule {
name = com-obsproject-Studio-opacity
opacity = 1 override 1 override
match:class = ^(com.obsproject.Studio)$
}
windowrule {
name = empty-class-opacity
opacity = 1 override 1 override
match:class = ^$
}
# Disable opacity for Alacritty (as it already has a transparent background)
windowrule = opacity 1 override 0.75 override, class:^(Alacritty)$
windowrule {
name = alacritty-opacity
opacity = 1 override 0.75 override
match:class = ^(Alacritty)$
}
workspace = special:terminal, on-created-empty: alacritty
# Tags for opacity
windowrule = opacity 0.1 override 0.1 override, tag:opacity:0.1
windowrule = opacity 0.2 override 0.2 override, tag:opacity:0.2
windowrule = opacity 0.3 override 0.3 override, tag:opacity:0.3
windowrule = opacity 0.4 override 0.4 override, tag:opacity:0.4
windowrule = opacity 0.5 override 0.5 override, tag:opacity:0.5
windowrule = opacity 0.6 override 0.6 override, tag:opacity:0.6
windowrule = opacity 0.7 override 0.7 override, tag:opacity:0.7
windowrule = opacity 0.8 override 0.8 override, tag:opacity:0.8
windowrule = opacity 0.9 override 0.9 override, tag:opacity:0.9
windowrule = opacity 1 override 1 override, tag:opacity:1
windowrule {
name = tag-opacity-0.1
opacity = 0.1 override 0.1 override
match:tag = opacity:0.1
}
windowrule {
name = tag-opacity-0.2
opacity = 0.2 override 0.2 override
match:tag = opacity:0.2
}
# freeRDP - Remote Desktop Protocol Client
windowrule = float, class:^(xfreerdp)$
# match by X11 WM_CLASS you set in xfreerdp
windowrule = float, class:^(Autodesk Fusion)$
windowrule = center, class:^(Autodesk Fusion)$
# prevent tiling / auto-fullscreen for these windows
#windowrulev2 = disableautotile, xclass:Autodesk Fusion
windowrule = float, class:^(Autodesk Fusion)$
# optionally force borderless (if you prefer)
windowrule = noborder, class:^(Autodesk Fusion)$
windowrule {
name = tag-opacity-0.3
opacity = 0.3 override 0.3 override
match:tag = opacity:0.3
}
windowrule {
name = tag-opacity-0.4
opacity = 0.4 override 0.4 override
match:tag = opacity:0.4
}
windowrule {
name = tag-opacity-0.5
opacity = 0.5 override 0.5 override
match:tag = opacity:0.5
}
windowrule {
name = tag-opacity-0.6
opacity = 0.6 override 0.6 override
match:tag = opacity:0.6
}
#! (Still doesn't work) Add org.kde.kdeconnect.daemon for KDE connect pointer
windowrule = noblur, class:^(org.kde.kdeconnect.daemon)$ #As it is transparent it will prevent it blurring so you can see what you are ponting at
windowrule = nofocus,class:^(org.kde.kdeconnect.daemon)$ # Disables focus so if you have the option to dim on focus it will not dim the window behind it
windowrule = nodim,class:^(org.kde.kdeconnect.daemon)$ # As it is out of focus it will prevent it from diming, so its brighter if you have window dimming on
windowrule = noshadow,class:^(org.kde.kdeconnect.daemon)$ # Preents it having a shadow if you have window shadows on
windowrule = idleinhibit,class:^(org.kde.kdeconnect.daemon)$ # Will prevent your computer from idling if this is in use
windowrule = float,class:^(org.kde.kdeconnect.daemon)$
# windowrule = maximize,class:^(org.kde.kdeconnect.daemon)$
# windowrule = move 0 0,class:^(org.kde.kdeconnect.daemon)$
windowrule {
name = tag-opacity-0.7
opacity = 0.7 override 0.7 override
match:tag = opacity:0.7
}
windowrule {
name = tag-opacity-0.8
opacity = 0.8 override 0.8 override
match:tag = opacity:0.8
}
windowrule {
name = tag-opacity-0.9
opacity = 0.9 override 0.9 override
match:tag = opacity:0.9
}
windowrule {
name = tag-opacity-1
opacity = 1 override 1 override
match:tag = opacity:1
}
windowrule {
name = xfreerdp-floating
float = on
match:class = ^(xfreerdp)$
}
windowrule {
name = autodesk-fusion-floating
float = on
center = on
border_size = 0
match:class = ^(Autodesk Fusion)$
}