Skip to content

Capture open plugin panels in screenshots - #7415

Open
ArthurWillers wants to merge 2 commits into
basecamp:quattrofrom
ArthurWillers:agent/capture-open-plugin-panels
Open

Capture open plugin panels in screenshots#7415
ArthurWillers wants to merge 2 commits into
basecamp:quattrofrom
ArthurWillers:agent/capture-open-plugin-panels

Conversation

@ArthurWillers

@ArthurWillers ArthurWillers commented Aug 18, 2026

Copy link
Copy Markdown

Summary

Screenshots can select the visible card of an open plugins.

Verification

  • capture-region, shell, CLI, and screenshot sanity tests pass
  • live-verified menu, network, and OSD cards on two monitors

🤖 Implemented and validated with OpenAI Codex in collaboration with @ArthurWillers.

Copilot AI balanced review requested due to automatic review settings August 18, 2026 18:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds “capture target” geometry for visible plugin panel content so the screenshot/recording picker can snap to what the user actually sees (not full-screen transparent layer-shell surfaces).

Changes:

  • Introduces a CaptureTarget QML helper and shell APIs to register/collect visible panel “card” geometry (listCaptureTargets).
  • Updates multiple plugins/panels to register their visible card as a capture target.
  • Extends omarchy-capture-region to include open-plugin rects and to consider all monitors; adds a shell test and updates docs/bindings wording to “target”.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/shell.d/capture-region-test.sh Adds an integration-style shell test validating candidate geometries include open plugin panel rects.
shell/shell.qml Adds capture target registry + exposes listCaptureTargets for external tools.
shell/plugins/reminders/ReminderFlow.qml Registers reminders panel card as a capture target.
shell/plugins/panels/wifiqr/Panel.qml Adds ids and registers wifiqr panel card as a capture target.
shell/plugins/osd/Osd.qml Adds shell property and registers OSD card as a capture target.
shell/plugins/menu/Menu.qml Registers menu panel card as a capture target.
shell/plugins/image-picker/ImagePicker.qml Adds shell property/import and registers image picker card as a capture target.
shell/plugins/emojis/Emojis.qml Registers emojis panel card as a capture target.
shell/plugins/clipboard/Clipboard.qml Adds shell property and registers clipboard panel card as a capture target.
shell/Ui/qmldir Exposes CaptureTarget as a QML type in qs.Ui.
shell/Ui/KeyboardPanel.qml Registers keyboard panel card as a capture target (with derived targetId).
shell/Ui/CaptureTarget.qml New helper object computing card geometry and registering with the shell.
manual/12-screenshots-recording.md Updates docs to mention snapping to open plugin panels and “targets” terminology.
default/hypr/bindings/utilities.lua Renames selection binding descriptions from “window” to “capture target”.
bin/omarchy-capture-region Adds open-plugin rect collection via omarchy-shell, broadens monitor rects, and integrates new target rects into selection logic.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread shell/Ui/CaptureTarget.qml
Comment thread test/shell.d/capture-region-test.sh Outdated
Copilot AI review requested due to automatic review settings August 18, 2026 18:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated no new comments.

Suppressed comments (1)

shell/shell.qml:435

  • CaptureTarget.qml defines the identifier as targetId, but this log line reads target.targetId, which will always be undefined and degrade diagnostics. Use target.targetId only if the property is actually named that way; otherwise switch this to target.targetIdtarget.targetId’s correct property name (target.targetId should be target.targetId -> target.targetId is currently wrong; should be target.targetId -> target.targetId is target.targetId?); concretely, update it to reference target.targetIdtarget.targetId’s actual property (target.targetId should be target.targetId?). (Mandatory: fix so warnings include the target id.)
      try { geometry = target.captureGeometry() } catch (e) {
        console.warn("capture geometry failed for", target.targetId || "unknown target", e)
        return
      }

Copilot AI review requested due to automatic review settings August 18, 2026 18:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated 1 comment.

Comment thread shell/Ui/CaptureTarget.qml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants