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.
- 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
-
Create a virtual environment (recommended):
cd C:\Users\LUTA\DemoPro python -m venv venv .\venv\Scripts\Activate.ps1 -
Install dependencies:
pip install -r requirements.txt -
Run the application:
python demopro.py
The application will start silently and appear in your system tray.
| 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 |
- Press
Ctrl+Alt+Pto activate the pen tool and show the overlay - Draw on your screen with the mouse or pen tablet
- Press
Escapeor click the tray icon to hide the overlay - Right-click the tray icon for additional options
Configuration is stored at ~/.demopro/config.json and is created automatically on first run.
{
"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
}
}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
Edit the colors section with hex color codes (e.g., #FF0000 for red).
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
- 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
- Whiteboard: Transparent background, drawings appear over your desktop/applications
- Blackboard: Semi-opaque dark background, like a presentation screen
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
- 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
- Ensure no other application is using the same hotkey combinations
- Try running as Administrator
- Check if pynput has proper permissions
- 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
- Use "Refresh Monitors" from the tray menu after connecting/disconnecting displays
- The overlay appears on the monitor where your cursor is located
- Ensure tablet drivers are installed
- Connect tablet before starting DemoPro
- Check Windows Ink settings in your tablet configuration
To create a standalone Windows executable:
pip install pyinstaller
pyinstaller --onefile --windowed --name DemoPro demopro.pyThe executable will be created in the dist folder.
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
- 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)
MIT License - Feel free to use and modify for your needs.