some fixes in hyprland

This commit is contained in:
2026-08-19 19:56:58 +02:00
parent 4207f91f5a
commit 6a9ae98c26
10 changed files with 517 additions and 0 deletions
+125
View File
@@ -0,0 +1,125 @@
-- config/windowrules.lua
-- Translated from config_windowrules.conf to hl.window_rule() / hl.layer_rule().
-- ── Float rules ───────────────────────────────────────────────
local float_classes = {
"org.pulseaudio.pavucontrol",
"blueman-manager",
"zenity",
"pomodorolm",
"CachyOSHello",
"Rofi",
"Picture in picture",
"Save File",
"Open File",
"Steam - Self Updater",
"^Extension:.*",
}
for _, cls in ipairs(float_classes) do
hl.window_rule({ match = { class = cls }, float = true })
end
hl.window_rule({ match = { class = "LibreWolf", title = "Picture-in-Picture" }, float = true })
hl.window_rule({
match = { class = "^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland).*" },
float = true,
})
hl.window_rule({
match = {
class = "^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.kde.polkit-kde-authentication-agent-1).*",
},
float = true,
})
hl.window_rule({ match = { class = "Zotero", title = "Progress" }, float = true })
hl.window_rule({ match = { class = "Zotero", title = "Zotero Settings" }, float = true })
hl.window_rule({ match = { class = "Zotero", title = "Citation Dialog" }, float = true, center = true, no_anim = true })
hl.window_rule({ match = { class = "waypaper" }, float = true, center = true })
hl.window_rule({ match = { title = "calcure" }, float = true, center = true })
hl.window_rule({ match = { class = "org.gnome.Calculator" }, float = true, center = true })
hl.window_rule({
match = { class = "org.gnome.Calendar", title = "Calendar" },
float = true,
center = true,
animation = "popin",
opacity = "0.8",
})
hl.window_rule({ match = { class = "steam", title = "Freundesliste" }, float = true, size = { 400, 600 } })
-- ── PiP ──────────────────────────────────────────────────────
hl.window_rule({
match = { title = "Picture-in-Picture" },
float = true,
size = { 960, 540 },
move = { "(monitor_w*0.25)", "0" },
})
-- ── Media / misc float + position ────────────────────────────
hl.window_rule({
match = { title = "^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$" },
float = true,
})
hl.window_rule({
match = { title = "^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$" },
move = { "(monitor_w*0.25)", "0" },
size = { 960, 540 },
})
hl.window_rule({ match = { title = "danmufloat" }, pin = true })
hl.window_rule({ match = { title = "^(danmufloat|termfloat)$" }, rounding = 5 })
-- ── Opacity ───────────────────────────────────────────────────
hl.window_rule({ match = { class = "^(thunar|nemo|dolphin)$" }, opacity = "0.92" })
hl.window_rule({ match = { class = "^(discord|armcord|webcord)$" }, opacity = "0.96" })
hl.window_rule({ match = { title = "^(QQ|Telegram)$" }, opacity = "0.95" })
hl.window_rule({ match = { title = "NetEase Cloud Music Gtk4" }, opacity = "0.95" })
hl.window_rule({ match = { class = "kitty" }, opacity = "1.0" })
hl.window_rule({ match = { class = "^(libreoffice.*)$" }, opacity = "1.0 override 1.0 override 1.0" })
hl.window_rule({ match = { title = "^(.+nvim$)" }, opacity = "0.9" })
hl.window_rule({ match = { class = "^code$" }, opacity = "0.93" })
-- ── Blur / dim exceptions ─────────────────────────────────────
hl.window_rule({ match = { class = "org.mozilla.firefox" }, no_blur = true })
hl.window_rule({ match = { class = "zen" }, no_dim = true })
-- ── Animations ───────────────────────────────────────────────
hl.window_rule({ match = { class = "^(kitty|Alacritty)$" }, animation = "slide right" })
-- ── Floating decoration overrides ────────────────────────────
hl.window_rule({
match = { float = true, workspace = "w[fv1-10]" },
border_size = 2,
border_color = color4,
rounding = 8,
})
hl.window_rule({
match = { float = false, workspace = "f[1-10]" },
border_size = 3,
rounding = 4,
})
-- ── Pomodorolm size ──────────────────────────────────────────
hl.window_rule({ match = { class = "pomodorolm" }, size = { 260, 340 } })
-- ── Layer rules ───────────────────────────────────────────────
hl.layer_rule({ match = { namespace = "logout_dialog" }, animation = "slide top" })
-- QuickShell bar (replaces waybar layer rule)
hl.layer_rule({ match = { namespace = "quickshell" }, animation = "slide down" })
hl.layer_rule({ match = { namespace = "wallpaper" }, animation = "fade 50%" })
-- vicinae
hl.layer_rule({
match = { namespace = "vicinae" },
blur = true,
animation = "popin",
dim_around = true,
ignore_alpha = 1,
})
-- screenshare fix
hl.window_rule({
match = { class = "^(xwaylandvideobridge)$" },
opacity = "0.0 override 0.0",
no_anim = true,
no_initial_focus = true,
no_focus = true,
no_blur = true,
max_size = { 1, 1 },
})