Fix: Keep the screenshot picker out of its own capture

The picker paints an opaque frozen frame edge to edge, so the blur and dim
it inherited from the shared qs-overlay rule were compositor work on pixels
nobody sees. It now has its own layer rule.

no_anim is the load-bearing part. Capture.qml unmaps the picker and runs
grim 90ms later, and the default 200ms layersOut fade put the half-faded
picker, dimming and all, into every screenshot.
This commit is contained in:
Gabriel Brown
2026-09-14 14:36:33 -04:00
parent cceb7a707b
commit 6206565d95
2 changed files with 18 additions and 3 deletions
+4 -1
View File
@@ -341,7 +341,10 @@ esac'
property bool record: false
property bool intelligence: false
// A handful of frames at 60Hz, enough for the compositor to recomposite
// the output without the overlay on it.
// the output without the overlay on it. Only enough because the
// qs-capture layer rule in hypr/rules.lua sets no_anim: with the
// default 200ms layersOut fade the half-faded picker would still be
// on screen when grim reads it.
interval: 90
onTriggered: {
const r = commitDelay.rect;