Skip to content
/ DemoPro Public

Windows screen annotation tool with system tray integration

Notifications You must be signed in to change notification settings

Drfiya/DemoPro

Repository files navigation

DemoPro - Windows Screen Annotation Tool

A production-grade Windows screen annotation application that runs silently in the system tray. Draw annotations on your screen during presentations, screen sharing sessions, or tutorials.

Features

  • Drawing Tools: Freehand pen, straight lines, arrows, rectangles
  • Multi-Monitor Support: Automatically detects and works with multiple monitors
  • Screen Sharing Compatible: Works with Teams, Zoom, OBS, and other screen capture tools
  • Pen Tablet Support: Pressure-sensitive drawing with Wacom and compatible tablets
  • Overlay Modes: Whiteboard (transparent) and Blackboard (semi-opaque dark background)
  • Customizable: Configurable hotkeys, colors, and settings via JSON config
  • Lightweight: Minimal CPU usage when idle, runs silently in system tray

Quick Start

Installation

  1. Create a virtual environment (recommended):

    cd C:\Users\LUTA\DemoPro
    python -m venv venv
    .\venv\Scripts\Activate.ps1
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python demopro.py

The application will start silently and appear in your system tray.

Default Hotkeys

Action Hotkey
Pen Tool Ctrl+Alt+P
Line Tool Ctrl+Alt+L
Arrow Tool Ctrl+Alt+A
Rectangle Tool Ctrl+Alt+R
Clear All Ctrl+Alt+C
Undo Ctrl+Alt+Z
Toggle Mode Ctrl+Alt+M
Toggle Overlay Ctrl+Alt+B
Color 1 (Red) Ctrl+Alt+1
Color 2 (Blue) Ctrl+Alt+2
Color 3 (Yellow) Ctrl+Alt+3
Color 4 (Green) Ctrl+Alt+4
Color 5 (White) Ctrl+Alt+5
Exit Drawing Escape

Basic Usage

  1. Press Ctrl+Alt+P to activate the pen tool and show the overlay
  2. Draw on your screen with the mouse or pen tablet
  3. Press Escape or click the tray icon to hide the overlay
  4. Right-click the tray icon for additional options

Configuration

Configuration is stored at ~/.demopro/config.json and is created automatically on first run.

Config Structure

{
  "hotkeys": {
    "pen": "<ctrl>+<alt>+p",
    "line": "<ctrl>+<alt>+l",
    "arrow": "<ctrl>+<alt>+a",
    "rectangle": "<ctrl>+<alt>+r",
    "clear": "<ctrl>+<alt>+c",
    "undo": "<ctrl>+<alt>+z",
    "toggle_mode": "<ctrl>+<alt>+m",
    "toggle_overlay": "<ctrl>+<alt>+b"
  },
  "colors": {
    "preset_1": "#FF0000",
    "preset_2": "#0000FF",
    "preset_3": "#FFFF00",
    "preset_4": "#00FF00",
    "preset_5": "#FFFFFF"
  },
  "settings": {
    "activation_mode": "toggle",
    "overlay_mode": "whiteboard",
    "default_brush_thickness": 3,
    "max_brush_thickness": 20,
    "min_brush_thickness": 1,
    "undo_stack_size": 50,
    "blackboard_opacity": 180
  }
}

Customizing Hotkeys

Edit the hotkeys section in config.json. Use the format:

  • Modifiers: <ctrl>, <alt>, <shift>
  • Keys: lowercase letters, numbers, or special key names
  • Combined with +: <ctrl>+<alt>+p

Changing Colors

Edit the colors section with hex color codes (e.g., #FF0000 for red).

System Tray Menu

Right-click the tray icon to access:

  • Drawing tool selection
  • Color presets
  • Activation mode (toggle vs hold-to-draw)
  • Overlay mode (whiteboard vs blackboard)
  • Monitor refresh
  • Configuration folder access
  • Exit

Activation Modes

  • Toggle Mode: Press hotkey once to start drawing, press Escape or hotkey again to stop
  • Hold Mode: Hold the hotkey while drawing, release to stop

Overlay Modes

  • Whiteboard: Transparent background, drawings appear over your desktop/applications
  • Blackboard: Semi-opaque dark background, like a presentation screen

Pen Tablet Support

DemoPro automatically detects Wacom and compatible pen tablets:

  • Pressure sensitivity maps to brush thickness (1-20px)
  • Eraser end detection (hides overlay when eraser is used)
  • Works with most Windows Ink compatible devices

Troubleshooting

Application doesn't start

  • Ensure Python 3.9+ is installed
  • Check that all dependencies are installed: pip install -r requirements.txt
  • Check the log file at ~/.demopro/demopro.log

Hotkeys not working

  • Ensure no other application is using the same hotkey combinations
  • Try running as Administrator
  • Check if pynput has proper permissions

Overlay not visible during screen sharing

  • The overlay should be visible by default
  • If not, try toggling the overlay mode (Ctrl+Alt+B)
  • Some screen sharing apps may require specific window capture settings

Multi-monitor issues

  • Use "Refresh Monitors" from the tray menu after connecting/disconnecting displays
  • The overlay appears on the monitor where your cursor is located

Pen tablet not detected

  • Ensure tablet drivers are installed
  • Connect tablet before starting DemoPro
  • Check Windows Ink settings in your tablet configuration

Building Standalone Executable

To create a standalone Windows executable:

pip install pyinstaller
pyinstaller --onefile --windowed --name DemoPro demopro.py

The executable will be created in the dist folder.

Project Structure

DemoPro/
├── demopro.py      # Main entry point
├── config.py       # Configuration management
├── tray.py         # System tray icon and menu
├── hotkeys.py      # Global hotkey listener
├── monitors.py     # Multi-monitor detection
├── overlay.py      # PyQt5 transparent overlay
├── annotation.py   # OpenCV drawing engine
├── tablet.py       # Pen tablet handling
├── requirements.txt
└── README.md

Requirements

  • Windows 10/11
  • Python 3.9+
  • Dependencies (see requirements.txt):
    • pystray (system tray)
    • Pillow (icon creation)
    • pynput (global hotkeys)
    • opencv-python (drawing)
    • numpy (array operations)
    • PyQt5 (overlay window)
    • mss (screen capture)
    • pywin32 (Windows API)

License

MIT License - Feel free to use and modify for your needs.

About

Windows screen annotation tool with system tray integration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages