Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 5.98 KB

File metadata and controls

89 lines (73 loc) · 5.98 KB

SwiftShot Roadmap

Roadmap for SwiftShot - a fast, bloat-free Greenshot replacement for Windows (Python + PyQt5 + Win32 GDI + WinRT OCR). Focus: adding the handful of features users actually miss from Greenshot + CleanShot X without bringing the bloat back.

Planned Features

Capture

  • Delayed per-shape capture: select region, then countdown, then takes fresh screenshot of that exact area
  • Multi-monitor DPI-aware scroll capture (currently single-monitor friendly)
  • Scrolling capture for web apps using DevTools protocol where available (Chromium-only enhancement)
  • Camera overlay and green-screen keying for "me + screen" tutorial captures
  • GIF / MP4 short-recording with edit-after-capture frame picker
  • Color-picker global hotkey that captures color under cursor to clipboard as hex

Editor

  • Layer system - each annotation on its own layer, reorder/toggle/opacity per layer
  • Magic wand / heal tool (LaMa ONNX) for object removal
  • Speech bubble tool
  • Badge / number-sequence tool with custom shape presets
  • Auto-redact patterns (emails, phone numbers, IP/MAC)
  • Vector export to SVG alongside PNG

Pin & workflow

  • Multiple pin windows snapping to grid with saved layouts
  • Pinned window annotations (scribble directly on a pinned shot and it updates)
  • Drag-to-reference: any pinned image is a drag source for other apps
  • Quick-share targets: Imgur anonymous, self-hosted endpoint, clipboard, file
  • Watch folder - auto-ingest images dropped into a configured folder

OCR

  • Translate OCR output via offline translation model or user-chosen API
  • Barcode/QR decoder tool
  • OCR-region capture returns both image and recognized text in clipboard

Performance & robustness

  • Migrate PyQt5 -> PyQt6 (per CLAUDE.md preference)
  • Static-link build to trim .exe size and cold-start time
  • Instrumented crash-handler with GUI crash dialog that writes to %APPDATA%\SwiftShot\crashlog.txt
  • Per-version auto-update via GitHub Releases (signed)

Config & deployment

  • Portable-mode flag (settings next to exe) for USB stick use
  • Admin-install MSIX with winget manifest
  • Context-menu integration (right-click a file -> "Open in SwiftShot editor")

Competitive Research

  • Greenshot - the baseline. SwiftShot intentionally strips plugins; document clearly what's missing (Imgur-one-click, Office export) and whether each is on the roadmap.
  • ShareX - kitchen sink with upload destinations and workflow chains; SwiftShot should not re-add cloud plugins but can take the "upload destination" concept as an optional user-configured endpoint.
  • CleanShot X (macOS, paid) - best-in-class scroll capture + GIF recording + instant overlay of last capture. Scroll capture and GIF recording are the two biggest remaining gaps.
  • Shottr (macOS) - smart OCR + measurement tool; already mirrored for OCR and ruler. Copy their OCR-overlay UX that shows recognized text anchored to image regions.
  • Flameshot (cross-platform, GPL) - simple edit bar after capture; similar philosophy. Match their hotkey discoverability (on-screen key hints during capture).

Nice-to-Haves

  • Relicense evaluation: GPL-3 -> MIT if all non-MIT transitive deps can be swapped out (would simplify distribution and align with house style)
  • Dedicated "tutorial screenshot" preset stack (step-numbers + arrow + highlight + blur)
  • Notion/Obsidian/Markdown clipboard-copy export ("paste as markdown image link")
  • Built-in quick edit via single-key toolbar hover, no click required
  • Per-app capture profiles (saved hotkeys + preset per foreground app)
  • Plugin SDK - minimal Python file drops a new tool into the editor toolbar
  • Linux port via X11/Wayland screenshot APIs as a longer-term stretch

Open-Source Research (Round 2)

Related OSS Projects

Features to Borrow

  • ShareX scrolling-capture (stitch-scroll) — SwiftShot lacks this; important for docs/long pages
  • Flameshot's inline toolbar pinned to the selection rectangle — rotates as selection moves, feels more modern than floating toolbar
  • Ksnip's multi-selection shapes with drag-handle resize after commit (rare in Greenshot clones)
  • ShareX workflow automation — "After capture -> [OCR, annotate, save, copy path, upload]" as a user-defined pipeline
  • Timed capture + region lock (ShareX) — great for capturing menus that close on focus loss
  • Built-in OCR (Tesseract) producing selectable text under the pixels (ShareX)
  • CLI mode with argparse flags (swiftshot --region 0,0,800,600 --out file.png) for scripting (scrot precedent)

Patterns & Architectures Worth Studying

  • Annotation as immediate-mode canvas layer using PyQt6 QGraphicsScene (Flameshot's scene-graph approach translates cleanly)
  • Plugin SDK ethos — Greenshot's failure mode was loading enterprise plugins nobody needed; SwiftShot should keep plugins optional and drop-in-folder style (%APPDATA%\SwiftShot\Plugins\*.py) with Tool(ABC) contract
  • DPI-aware capture path (CLAUDE.md memory already mandates this); on multi-monitor with mixed DPI, enumerate via Win32 EnumDisplayMonitors + per-monitor-v2 context
  • File-naming template system ({app}_{yyyy-MM-dd_HH-mm-ss}) with variable registry — ShareX's template engine is a good reference
  • Clipboard-history integration for "paste as markdown image link" (Obsidian/Notion workflow)