123 lines
4.9 KiB
Lua
123 lines
4.9 KiB
Lua
-- gui package — the dots layer + window rules, split out of ./hyprland.lua
|
|
-- (required there in their original position). Plain hl.* registrations;
|
|
-- nothing here depends on the rest of the layer.
|
|
|
|
-- ── Layer rules ──────────────────────────────────────────────────────────────
|
|
-- waybar blur ships upstream (layer_rules.lua), but its ignore_alpha uses the
|
|
-- boolean form (default threshold), which drops the blur on low-alpha regions
|
|
-- — the cavabar background is rgba(0,0,0,0.2) and went flat. The legacy chain
|
|
-- set the threshold to 0 (blur everything) on both bars; restore that exactly.
|
|
hl.layer_rule({
|
|
name = "dots_cavabar_blur",
|
|
match = { namespace = "cavabar" },
|
|
blur = true,
|
|
ignore_alpha = 0,
|
|
})
|
|
hl.layer_rule({
|
|
name = "dots_waybar_ignore_alpha",
|
|
match = { namespace = "waybar" },
|
|
ignore_alpha = 0,
|
|
})
|
|
|
|
-- ── Window rules ─────────────────────────────────────────────────────────────
|
|
-- Upstream's window_rules.lua consolidates most floats (dialogs, portals,
|
|
-- dolphin, nm-*, qt*ct, vlc, pavucontrol, …) and the PiP/modal handling.
|
|
-- Ported here: everything the repo's windowrules.conf had that upstream
|
|
-- dropped when it went global-opacity — per-app opacity, idle_inhibit,
|
|
-- jetbrains popups — plus the floats upstream does not cover.
|
|
|
|
-- idle_inhibit while fullscreen (media players, browsers)
|
|
hl.window_rule({
|
|
name = "dots_idle_inhibit_media",
|
|
match = { class = "^(.*celluloid.*)$|^(.*mpv.*)$|^(.*vlc.*)$|^(.*[Ss]potify.*)$" },
|
|
idle_inhibit = "fullscreen",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_idle_inhibit_browsers",
|
|
match = {
|
|
class = "^(.*LibreWolf.*)$|^(.*floorp.*)$|^(.*brave-browser.*)$|^(.*firefox.*)$|^(.*chromium.*)$|^(.*zen.*)$|^(.*vivaldi.*)$",
|
|
},
|
|
idle_inhibit = "fullscreen",
|
|
})
|
|
|
|
-- per-app opacity ("active inactive fullscreen", hyprlang-style value string --
|
|
-- the Lua rule's opacity field is string-typed and takes the whole triple)
|
|
hl.window_rule({
|
|
name = "dots_opacity_browsers",
|
|
match = { class = "^(firefox)$|^(zen)$|^(brave-browser)$" },
|
|
opacity = "0.90 0.90 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_editors_terms",
|
|
match = {
|
|
class = "^(code-oss)$|^([Cc]ode)$|^(code-url-handler)$|^(code-insiders-url-handler)$|^(kitty)$|^(org.kde.dolphin)$|^(org.kde.ark)$|^(nwg-look)$|^(qt5ct)$|^(qt6ct)$|^(kvantummanager)$",
|
|
},
|
|
opacity = "0.80 0.80 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_applets",
|
|
match = {
|
|
class = "^(org.pulseaudio.pavucontrol)$|^(blueman-manager)$|^(nm-applet)$|^(nm-connection-editor)$|^(hyprpolkitagent)$|^(org.freedesktop.impl.portal.desktop.gtk)$|^(org.freedesktop.impl.portal.desktop.hyprland)$",
|
|
},
|
|
opacity = "0.80 0.70 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_spotify_class",
|
|
match = { class = "^([Ss]potify)$" },
|
|
opacity = "0.70 0.70 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_spotify_title",
|
|
match = { initial_title = "^(Spotify Free)$|^(Spotify Premium)$" },
|
|
opacity = "0.70 0.70 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_blender",
|
|
match = { class = "^(blender)$" },
|
|
opacity = "1.00 1.00 1",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_gtk_apps",
|
|
match = { class = "^(com.github.rafostar.Clapper)$" },
|
|
opacity = "0.90 0.90",
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_opacity_misc_apps",
|
|
match = {
|
|
class = "^(com.github.tchx84.Flatseal)$|^(hu.kramo.Cartridges)$|^(com.obsproject.Studio)$|^(gnome-boxes)$|^(vesktop)$|^(discord)$|^(WebCord)$|^(ArmCord)$|^(app.drey.Warp)$|^(net.davidotek.pupgui2)$|^(yad)$|^(Signal)$|^(io.github.alainm23.planify)$|^(io.gitlab.theevilskeleton.Upscaler)$|^(com.github.unrud.VideoDownloader)$|^(io.gitlab.adhami3310.Impression)$|^(io.missioncenter.MissionCenter)$|^(io.github.flattool.Warehouse)$",
|
|
},
|
|
opacity = "0.80 0.80",
|
|
})
|
|
|
|
-- floats upstream's consolidated list does not cover
|
|
hl.window_rule({
|
|
name = "dots_float_class",
|
|
match = {
|
|
class = "^(Signal)$|^(com.github.rafostar.Clapper)$|^(app.drey.Warp)$|^(net.davidotek.pupgui2)$|^(yad)$|^(eog)$|^(io.github.alainm23.planify)$|^(io.gitlab.theevilskeleton.Upscaler)$|^(com.github.unrud.VideoDownloader)$|^(io.gitlab.adhami3310.Impression)$|^(io.missioncenter.MissionCenter)$",
|
|
},
|
|
float = true,
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_float_title",
|
|
match = { title = "^(About Mozilla Firefox)$|^(Ghidra: NO ACTIVE PROJECT.*)$" },
|
|
float = true,
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_float_kitty_monitors",
|
|
match = { class = "^(kitty)$", title = "^(top)$|^(btop)$|^(htop)$" },
|
|
float = true,
|
|
})
|
|
hl.window_rule({
|
|
name = "dots_blender_image_editor",
|
|
match = { class = "^(blender)$", initial_title = "^(Image Editor)$" },
|
|
float = true,
|
|
size = "(monitor_w*0.5) (monitor_h*0.5)",
|
|
})
|
|
|
|
-- jetbrains dropdowns/popups flicker workaround
|
|
hl.window_rule({
|
|
name = "dots_jetbrains_popups",
|
|
match = { class = "^(.*jetbrains.*)$", title = "^(win[0-9]+)$" },
|
|
no_initial_focus = true,
|
|
})
|