fix: window and layer rules. Hypr devs had to fix what wasn't broken again.

This commit is contained in:
2026-01-01 19:36:08 +03:00
parent f30e7d0085
commit 816db39d6e
2 changed files with 293 additions and 67 deletions

View File

@@ -571,7 +571,12 @@ bindr = , F8, sendshortcut, CTRL SHIFT, F8, class:^(vesktop)$
# Telegram PTT
binde = $mainMod CTRL, F9, tagwindow, voicechatuz
bindr = , F9, sendshortcut, , F9, class:com.ayugram.desktop
windowrule = bordercolor rgba(ffff00ff) rgba(ffff0055),tag:voicechatuz
windowrule {
name = windowrule-1
border_color = rgba(ffff00ff) rgba(ffff0055)
match:tag = voicechatuz
}
# Zen - focus searchbar
bindrn = CTRL, Space, sendshortcut, , F6, class:^(zen)$
@@ -642,80 +647,179 @@ submap = reset
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Floating kitty
windowrule = float,class:^(kitty-float)$
windowrule = size 600 400,class:^(kitty-float)$
windowrule = move center,class:^(kitty-float)$
windowrule {
name = windowrule-2
float = on
size = 600 400
move = (center)
match:class = ^(kitty-float)$
}
windowrule {
name = windowrule-3
workspace = special:dungeon
match:class = org.freedesktop.Xwayland
}
windowrule = workspace special:dungeon,class:org.freedesktop.Xwayland
# Zenity
windowrule = float,class:^(zenity)$
windowrule {
name = windowrule-4
float = on
match:class = ^(zenity)$
}
# Super Productivity
windowrule = workspace 7 silent,class:^(superProductivity)$
windowrule {
name = windowrule-5
workspace = 7 silent
match:class = ^(superProductivity)$
}
# Telegram
windowrule = workspace 8 silent,class:^(com.ayugram.desktop)$
windowrule = group set,class:^(com.ayugram.desktop)$
windowrule {
name = windowrule-6
workspace = 8 silent
group = set
match:class = ^(com.ayugram.desktop)$
}
# Vesktop
windowrule = workspace 8 silent,class:^(vesktop)$
windowrule = group override set always,class:^(vesktop)$
windowrule {
name = windowrule-7
workspace = 8 silent
group = override set always
match:class = ^(vesktop)$
}
# Element
windowrule = workspace 8 silent,class:^(Element)$
windowrule = group override set always,class:^(Element)$
windowrule {
name = windowrule-8
workspace = 8 silent
group = override set always
match:class = ^(Element)$
}
# Steam
windowrule = workspace 7 silent,class:^(steam)$
windowrule = group set,class:^(steam)$
windowrule {
name = windowrule-9
workspace = 7 silent
group = set
match:class = ^(steam)$
}
# Screensharing protection
source = ~/.config/hypr/privacy.conf
windowrule = noscreenshare, tag:privacy
windowrule = bordercolor rgba(cc00ffff) rgba(630063ff) 90deg,tag:privacy
windowrule = noscreenshare 0, tag:privacyexpose
windowrule = bordercolor rgba(ff0000ff) rgba(ff0000ff) 90deg,tag:privacyexpose
windowrule = dimaround, tag:privacyexpose
windowrule {
name = windowrule-10
no_screen_share = on
border_color = rgba(cc00ffff) rgba(630063ff) 90deg
match:tag = privacy
}
windowrule {
name = windowrule-11
no_screen_share = 0
border_color = rgba(ff0000ff) rgba(ff0000ff) 90deg
dim_around = on
match:tag = privacyexpose
}
# com.saivert.pwvucontrol
windowrule = float,class:^(com.saivert.pwvucontrol)$
windowrule = size 600 400,class:^(com.saivert.pwvucontrol)$
windowrule = move center,class:^(com.saivert.pwvucontrol)$
windowrule {
name = windowrule-12
float = on
size = 600 400
move = (center)
match:class = ^(com.saivert.pwvucontrol)$
}
# Frozen windows
windowrule = bordercolor rgba(E96375ff) rgba(00ffff55) 90deg,tag:zawarudo
windowrule {
name = windowrule-13
border_color = rgba(E96375ff) rgba(00ffff55) 90deg
match:tag = zawarudo
}
# Marked windows
windowrule = bordercolor rgba(0000ffff) rgba(aa00ffa5),tag:marked
windowrule {
name = windowrule-14
border_color = rgba(0000ffff) rgba(aa00ffa5)
match:tag = marked
}
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
windowrule {
name = windowrule-15
suppress_event = maximize
match:class = .*
}
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule {
name = windowrule-16
no_focus = on
match:class = ^$
match:title = ^$
match:xwayland = 1
match:float = 1
match:fullscreen = 0
match:pin = 0
}
# rofi
layerrule = ignorezero, rofi
layerrule = dimaround, rofi
layerrule = blur, rofi
layerrule = animation slide bottom, rofi
layerrule {
name = layerrule-1
ignore_alpha = 0
dim_around = on
blur = on
animation = slide bottom
match:namespace = rofi
}
# swaync
layerrule = blur, swaync-control-center
layerrule = blur, swaync-notification-window
layerrule = abovelock, swaync-notification-window
layerrule = dimaround, swaync-control-center
layerrule = ignorezero, swaync-control-center
layerrule = ignorezero, swaync-notification-window
layerrule = animation slideIn right, swaync-control-center
layerrule = animation slideIn right, swaync-notification-window
layerrule {
name = layerrule-2
blur = on
dim_around = on
ignore_alpha = 0
animation = slideIn right
match:namespace = swaync-control-center
}
layerrule {
name = layerrule-3
blur = on
above_lock = on
ignore_alpha = 0
animation = slideIn right
match:namespace = swaync-notification-window
}
# waybar
layerrule = ignorezero, waybar
layerrule = blur, waybar
layerrule = ignorealpha 0.6, waybar
layerrule = animation fadeIn, waybar
layerrule {
name = layerrule-4
ignore_alpha = 0.6
blur = on
animation = fadeIn
match:namespace = waybar
}
# Adjustments for certain workspaces
workspace = special:magic, gapsin:20, gapsout:50, shadow:false
@@ -761,12 +865,42 @@ plugin {
on_double_click =
windowrule = plugin:hyprbars:bar_color rgb(261B1E), class:^(com.ayugram.desktop)
windowrule = plugin:hyprbars:bar_color rgb(121214), class:^(vesktop)
windowrule = plugin:hyprbars:bar_color rgb(131313), class:^(zen)
windowrule = plugin:hyprbars:bar_color rgb(F1F3F4), class:^(draw.io)
windowrule = plugin:hyprbars:bar_color rgb(1C1C1C), class:^(thunar)
windowrule = plugin:hyprbars:bar_color rgb(1C1C1C), floating:1
windowrule {
name = windowrule-17
match:plugin = hyprbars:bar_color rgb(261B1E)
match:class = ^(com.ayugram.desktop)
}
windowrule {
name = windowrule-18
match:plugin = hyprbars:bar_color rgb(121214)
match:class = ^(vesktop)
}
windowrule {
name = windowrule-19
match:plugin = hyprbars:bar_color rgb(131313)
match:class = ^(zen)
}
windowrule {
name = windowrule-20
match:plugin = hyprbars:bar_color rgb(F1F3F4)
match:class = ^(draw.io)
}
windowrule {
name = windowrule-21
match:plugin = hyprbars:bar_color rgb(1C1C1C)
match:class = ^(thunar)
}
windowrule {
name = windowrule-22
match:plugin = hyprbars:bar_color rgb(1C1C1C)
match:float = 1
}
}
hyprexpo {

View File

@@ -1,18 +1,110 @@
windowrule = tag +privacy,class:^(org.telegram.desktop)$
windowrule = tag +privacy,class:^(com.ayugram.desktop)$
windowrule = tag +privacy,class:^(Element)$
windowrule = tag +privacy,class:^(vesktop)$
windowrule = tag +privacy,class:^(chat-simplex-desktop-MainKt)$
windowrule = tag +privacy,class:^(com.github.hluk.copyq)$
windowrule = tag +privacy,class:^(org.keepassxc.KeePassXC)$
windowrule = tag +privacy,class:^(otpclient)$
windowrule = tag +privacy,class:^(com.nextcloud.desktopclient.nextcloud)$
windowrule = tag +privacy,title:^(diary)$
windowrule = tag +privacy,class:thunar,title:.*(Downloads|Telegram Desktop).*
windowrule = tag +privacy,class:^(Mullvad VPN)$
windowrule = tag +privacy,class:^(Tor Browser)$
windowrule = tag +privacy,class:^(zen)$,title:.*Private Browsing.*
windowrule = tag +privacy,class:^(Logseq)$
windowrule = tag +privacy,class:^(com.obsproject.Studio)$
layerrule = noscreenshare, swaync-control-center
layerrule = noscreenshare, swaync-notification-window
windowrule {
name = privacy-rule-1
tag = +privacy
match:class = ^(org.telegram.desktop)$
}
windowrule {
name = privacy-rule-2
tag = +privacy
match:class = ^(com.ayugram.desktop)$
}
windowrule {
name = privacy-rule-3
tag = +privacy
match:class = ^(Element)$
}
windowrule {
name = privacy-rule-4
tag = +privacy
match:class = ^(vesktop)$
}
windowrule {
name = privacy-rule-5
tag = +privacy
match:class = ^(chat-simplex-desktop-MainKt)$
}
windowrule {
name = privacy-rule-6
tag = +privacy
match:class = ^(com.github.hluk.copyq)$
}
windowrule {
name = privacy-rule-7
tag = +privacy
match:class = ^(org.keepassxc.KeePassXC)$
}
windowrule {
name = privacy-rule-8
tag = +privacy
match:class = ^(otpclient)$
}
windowrule {
name = privacy-rule-9
tag = +privacy
match:class = ^(com.nextcloud.desktopclient.nextcloud)$
}
windowrule {
name = privacy-rule-10
tag = +privacy
match:title = ^(diary)$
}
windowrule {
name = privacy-rule-11
tag = +privacy
match:class = thunar
match:title = .*(Downloads|Telegram Desktop).*
}
windowrule {
name = privacy-rule-12
tag = +privacy
match:class = ^(Mullvad VPN)$
}
windowrule {
name = privacy-rule-13
tag = +privacy
match:class = ^(Tor Browser)$
}
windowrule {
name = privacy-rule-14
tag = +privacy
match:class = ^(zen)$
match:title = .*Private Browsing.*
}
windowrule {
name = privacy-rule-15
tag = +privacy
match:class = ^(Logseq)$
}
windowrule {
name = privacy-rule-16
tag = +privacy
match:class = ^(com.obsproject.Studio)$
}
layerrule {
name = privacy-layer-rule-1
no_screen_share = on
match:namespace = swaync-control-center
}
layerrule {
name = privacy-layer-rule-2
no_screen_share = on
match:namespace = swaync-notification-window
}