Skip to content

Add native pointer clicks, drawing export, and freeform screenshots - #5

Closed
charlesanim wants to merge 1 commit into
nilbuild:mainfrom
charlesanim:feat/drawing-capture-pointer
Closed

charlesanim wants to merge 1 commit into
nilbuild:mainfrom
charlesanim:feat/drawing-capture-pointer

Conversation

@charlesanim

@charlesanim charlesanim commented Nov 2, 2026 •

Copy link
Copy Markdown

Changes

  • Pointer is the default mode: native clicks, double-clicks, right-clicks, modifiers, and drags pass through unchanged. The overlay no longer blocks Dock interactions in this mode.
  • Draw preserves the upstream non-interactive drawing behavior, with a save button and menu command that export all strokes since the last clear to a cropped, transparent PNG. Faded strokes remain exportable.
  • Screenshot lets you trace any freeform shape, then save the screen contents inside it. The outline closes automatically, the exterior is transparent, and TinyHand's pointer, ink, toolbar, and selection are excluded.

Both exports use a native Save dialog. Cancel preserves the drawing/selection. Screenshot permission is requested only when capturing, with actionable errors if access is denied. The toolbar, menu, onboarding text, and documentation describe the new modes.

Upstream deliberately consumed normal clicks; separating Pointer and Draw makes real interaction the default without losing presentation-only drawing. Option still temporarily passes input through while drawing or selecting.

Evidence

The attached recording is a live macOS run over a separate, privacy-safe fixture, not a mockup. The attached PNGs include the native toolbar and actual files written by the Save dialogs. The fixture deliberately covers other desktop content, including the Save dialogs, while recording.

Reproduce the capture flow with python3 scripts/capture-evidence.py dist/evidence (Accessibility and Screen Recording required). The script also checks mode controls, native event delivery, drawing isolation, real file saves, cancellation, and transparency.

Image export and routing regressions run in swift test; the universal Apple Silicon/Intel release builds locally. macOS 14+ uses ScreenCaptureKit. The macOS 13 system-tool fallback compiles but has not been exercised on macOS 13 hardware.

Supersedes the fork-only PR: charlesanim#1.

Pointer, Draw, and Screenshot modes with save and clear controls

Actual exported drawing with a transparent background

Actual freeform screenshot with transparency outside the selection

demo.mp4

Linked issues

Closes #4 (native clicking and dragging).
Closes #7 (drawing PNG export).
Closes #6 (freeform screenshot capture).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 177a4e89-321a-4dda-aa20-96bb2d75b334
@nilbuild

nilbuild commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Thank you for the PR but there are no plans to extend it beyond what it does.

@nilbuild nilbuild closed this Nov 2, 2026
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.

Allow saving drawings as transparent PNG images Add freeform screenshot capture using a drawn selection Feature to enable clicking

2 participants