From 700c85e39af3488fbef287f46b4672dd8921b5e8 Mon Sep 17 00:00:00 2001 From: rope Date: Thu, 27 Aug 2026 10:27:15 +0100 Subject: [PATCH] quickshell: pin the focus grab around the recorder's slurp pick Co-Authored-By: Claude Opus 5 --- settings/quickshell.nix | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/settings/quickshell.nix b/settings/quickshell.nix index f3625be..f8e750e 100644 --- a/settings/quickshell.nix +++ b/settings/quickshell.nix @@ -6279,8 +6279,16 @@ in function start(mode) { if (recording || selecting) return; lastFile = ""; - // slurp wants the screen to itself, and the - // panel would otherwise be in frame. + // Same bracket the Shift+Super+S screenshot + // keybind uses. Quickshell's HyprlandFocusGrab + // is a seat grab: it redirects every pointer + // event to the bar, so slurp gets none — and + // slurp paints nothing until you drag, so an + // input-starved one is simply invisible. + // Closing the panel is not enough; reopening it + // to reach Cancel re-arms the grab. + if (mode === "region") bar.setScreenshotPin(true); + // The panel would otherwise be in frame. qsDropdown.animateClose(); if (mode === "region") slurpProc.running = true; else launch(""); @@ -6311,6 +6319,10 @@ in // resolve, and the exit code adds nothing.) onRunningChanged: { if (running) return; + // Unpin on every exit — picked, cancelled + // or crashed. (bar's own 30s watchdog is + // the backstop if this is ever missed.) + bar.setScreenshotPin(false); if (geom !== "") recCard.launch(geom); geom = ""; }