qr-scanner 0.2.1

A cross-platform QR code scanner with screen capture and clipboard integration
qr-scanner-0.2.1 is not a library.

QR Scanner

A cross-platform QR code scanner built with Rust. Features:

  • Screen Area Selection: Click "Scan QR" to gray out the screen and drag a rectangle over a QR code
  • Image Paste: Copy an image (right-click "Copy Image" on web) and paste it for QR extraction
  • Clipboard Integration: Scan results are automatically copied to clipboard
  • History: Keeps track of recent scans
  • System Tray (optional): Run from system tray with double-click to scan

Requirements

Build Requirements:

  • Rust 1.85+ (install via rustup)

Runtime Dependencies (Linux):

For screen capture:

  • GNOME: gnome-screenshot (usually pre-installed)
  • KDE Plasma: spectacle
    sudo apt-get install kde-spectacle
    
    
  • Xfce: xfce4-screenshooter
    sudo apt-get install xfce4-screenshooter
    
    
  • Sway/Wayland: slop and grim
    sudo apt-get install slop grim
    
    

For clipboard paste:

  • X11: xclip
    sudo apt-get install xclip
    
    
  • Wayland: wl-clipboard
    sudo apt-get install wl-clipboard
    
    

Runtime Dependencies (macOS):

  • screencapture (built-in, no installation needed)

For System Tray Support (Linux):

sudo apt-get install libgtk-3-dev libgdk-pixbuf2.0-dev libatk1.0-dev libappindicator3-dev pkg-config libxdo-dev

For System Tray Support (Windows/Mac):

No additional dependencies needed - builds out of the box.

Build Instructions

Basic Build (no system tray):

cargo build --release

With System Tray:

cargo build --release --features system-tray

Usage

  1. Run the application: ./target/release/qr-scanner
  2. Click "Scan QR" button
  3. Drag a rectangle over the QR code on your screen
  4. The decoded text will appear in the result box and be copied to clipboard

Paste Image:

  1. Right-click an image on a webpage and select "Copy Image"
  2. In QR Scanner, expand "Paste Image" section
  3. Click "Paste from Clipboard"

Platform Support

  • ✅ Linux (tested)
  • ✅ Windows (should work)
  • ✅ macOS (should work)

Dependencies

  • eframe (0.31) - GUI framework (egui)
  • screenshots (0.8) - Screen capture (uses libwayshot for Wayland)
  • rqrr (0.8) - QR code decoding
  • arboard (3.3) - Clipboard access
  • image (0.25) - Image processing
  • base64 (0.22) - Base64 encoding/decoding for clipboard images
  • rfd (0.15) - Native file dialogs
  • tray-icon (0.14) - System tray (optional feature, enabled with system-tray feature flag)