Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OpenCapture 📸

OpenCapture Logo

An ultra-lightweight, blazing-fast screen capture & annotation tool for Windows, macOS, and Linux.
Built with Rust and Tauri v2.

MIT License Rust Tauri v2 Memory Usage Platforms


✨ Features

  • 🪶 Ultra Lightweight: Consumes only ~25MB - 35MB of RAM (compared to 300MB+ in typical Electron capture apps).
  • ⚡ Instant Screen Capture: High-performance multi-monitor capture using native OS display APIs (xcap crate) in under 30ms.
  • 🎯 Precise Area Selection: Smooth interactive crosshair snipping with 8-point resize handles and real-time pixel dimensions.
  • 🔍 Pixel Loupe / Magnifier: Zoom in on individual pixels with coordinate and RGB/Hex color inspector before selecting.
  • 🎨 Rich Annotation Suite:
    • Pen / Brush: Freehand smooth drawing.
    • Rectangle Frame: Solid or outlined bounding boxes.
    • Circle / Ellipse: Highlight rounded UI elements and buttons.
    • Arrow Pointer: Directional vector arrows with customizable stroke.
    • Text Annotations: Crisp text placement with high-contrast shadow.
    • Color Palette: Curated quick-select colors + custom Hex color picker.
    • Stroke Widths: 2px (Thin), 4px (Medium), 8px (Thick).
  • 📋 Seamless Clipboard & File Export:
    • One-click Copy (Ctrl+C): Writes raw RGBA image data directly into OS clipboard via arboard for instant pasting into Discord, Slack, Telegram, Photoshop, Word, etc.
    • One-click Save (Ctrl+S): Saves high-resolution PNG to custom folder.
  • 🚀 Quick Capture Mode:
    • Global shortcut (default: Ctrl+Shift+A).
    • Automatically captures and saves to a user-defined directory (Screenshot_YYYYMMDD_HHmmss.png).
    • Automatically syncs to clipboard simultaneously.
  • ⌨️ Interactive Shortcut Recorder: Customize global capture shortcuts directly in the Settings window.
  • 🔔 System Tray Integration: Background daemon with right-click menu to quickly trigger captures or configure options.

⌨️ Keyboard Shortcuts

Shortcut Action Scope
Ctrl + Shift + S / Cmd + Shift + S Capture Area (Snipping Overlay) Global
Ctrl + Shift + A / Cmd + Shift + A Quick Capture (Direct auto-save & copy) Global
Ctrl + C / Cmd + C Copy to Clipboard Snipping Overlay
Ctrl + S / Cmd + S Save Screenshot to File Snipping Overlay
Ctrl + Z / Cmd + Z Undo Last Annotation Snipping Overlay
Esc Cancel / Close Capture Snipping Overlay

(All shortcuts are fully customizable via the Settings interface)


🏗️ Architecture & Technology Stack

graph TD
    subgraph Rust Core Backend
        OS[OS Display API] -->|xcap crate| CaptureEngine[Capture Engine]
        CaptureEngine -->|Fast Encoding| ImageBuffer[RGBA / PNG Buffer]
        Clipboard[arboard crate] -->|Raw RGBA Image| SysClipboard[OS Clipboard]
        Shortcuts[tauri-plugin-global-shortcut] -->|Global Hooks| Controller[Capture Controller]
        Tray[Tauri System Tray] --> Controller
    end

    subgraph Frontend - Canvas & UI
        Controller -->|Open Overlay| Overlay[Fullscreen Transparent Window]
        Overlay --> Canvas[HTML5 2D Canvas Editor]
        Canvas --> Tools[Pen / Box / Circle / Arrow / Text / Color]
        Canvas --> Export[Copy to Clipboard / Save File]
        Controller --> Settings[Settings & Dashboard Window]
    end
Loading
  • Core Engine: Rust 1.94+
  • Desktop Framework: Tauri v2
  • Screen Capture: xcap 0.9 (supports DirectX/GDI on Windows, ScreenCaptureKit on macOS, X11/Wayland on Linux)
  • Clipboard: arboard 3.4 (native platform pasteboards)
  • Frontend: Vite + TypeScript + HTML5 2D Canvas (Zero bulky UI frameworks, instantaneous startup)

🚀 Getting Started

Prerequisites

  1. Rust: Install Rust (1.90+ recommended).
  2. Node.js: Install Node.js (v18+ or v22+).
  3. pnpm (or npm / yarn):
    npm install -g pnpm

Installation & Development

  1. Clone the repository:

    git clone https://github.com/maiductuan/open-capture-screen.git
    cd open-capture-screen
  2. Install Node dependencies:

    pnpm install
  3. Run in development mode:

    pnpm tauri dev

Building for Production

To create a standalone, optimized installer for your current platform:

pnpm tauri build

The compiled binaries will be output to:

  • Windows: src-tauri/target/release/bundle/msi/ or bundle/nsis/ (.exe, .msi)
  • macOS: src-tauri/target/release/bundle/dmg/ (.dmg, .app)
  • Linux: src-tauri/target/release/bundle/deb/ or bundle/appimage/ (.deb, .AppImage)

🐧 Linux Dependencies

For Linux builds (Ubuntu / Debian), install required WebKit & indicator libraries:

sudo apt-get update && sudo apt-get install -y \
  libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libx11-dev \
  libxcb1-dev \
  libxcb-randr0-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  libxcb-shape0-dev \
  libxcb-render0-dev \
  libxfixes-dev \
  libpipewire-0.3-dev \
  libspa-0.2-dev \
  libdrm-dev \
  clang \
  libclang-dev

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages