I always had this layer rule:
local no_anim = {
"selection",
"hyprpicker"
}
for _, layer in ipairs(no_anim) do
hl.layer_rule({
match = {
namespace = layer
},
no_anim = true
})
end
Combined with this bind:
hl.bind("ALT + X", function()
hl.dispatch(hl.dsp.exec_cmd(
"hyprshot -m region -z -t 2000 --clipboard-only &&" ..
defs.sound.play_cmd .. defs.sound.screenshot))
end)
And since 254d6bae775258b554e1d3a4a853f3bc244190d9, it no longer respects no_anim = true when the layer is being closed.
There is no animation when I open it, but it slides down when I take a screenshot.
Got the commit with bisect.
Hyprland version
Hyprland 0.55.0 built from branch main at commit 254d6bae775258b554e1d3a4a853f3bc244190d9 clean (desktop/fadeout: extract bad logic, simplify fadeouts ( 15260)).
Date: Mon Jun 29 19:57:25 2026
Tag: v0.55.0-243-g254d6bae7, commits: 7533
Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.13.1, system has 0.13.1
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.12.1, system has 0.12.1
Version ABI string: 254d6bae775258b554e1d3a4a853f3bc244190d9_aq_0.12_hu_0.13_hg_0.5_hc_0.1_hlg_0.6
no flags were set