A lightweight, hotkey-driven screen annotation overlay for Linux users who conduct live presentations, tutorials, lectures, or CTF walkthroughs. Draw annotations in real-time with a floating toolbar, save screenshots instantly, and toggle between active drawing and passthrough modes seamlessly.
- Transparent Fullscreen Overlay β Annotations appear on top of all windows
- 7 Drawing Tools β Pen, Line, Rectangle, Circle, Arrow, Highlighter, Text
- Color Palette β Red, Green, Blue, Yellow, White, Orange, Cyan
- Adjustable Stroke Width β Thin (2px), Medium (5px), Thick (10px)
- Undo/Redo β Infinite undo and redo with Ctrl+Z / Ctrl+Y
- Active/Passthrough Modes β Toggle mouse passthrough to interact with windows beneath
- Instant Screenshots β Save annotated screenshots to Desktop with F9
- Spotlight Mode β Darken screen except a circle around cursor (F10)
- Floating Toolbar β Collapsible, always-on-top control panel
- Global Hotkeys β Work even when overlay has focus
- Python 3.10 or later
- pip (Python package manager)
- Linux desktop environment with X11 or Wayland support
-
Clone the repository:
git clone https://github.com/parbatzone/linuxink.git cd linuxink -
Install dependencies:
pip install -r requirements.txt
-
Run LinuxInk:
python3 linuxink.py
| Hotkey | Action |
|---|---|
| F6 | Toggle Active/Passthrough mode |
| F7 | Clear all annotations |
| F8 | Undo last annotation |
| Ctrl+Z | Undo (alternative) |
| Ctrl+Y | Redo |
| F9 | Save screenshot to Desktop |
| F10 | Toggle Spotlight mode |
| Delete | Delete selected annotation |
| Esc | Quit LinuxInk |
- Select a tool from the toolbar (Pen, Line, Rectangle, etc.)
- Choose a color and stroke width
- Click and drag on the screen to draw
- Release to finish the annotation
- Select the Text tool
- Click where you want to place text
- Type your text and press Enter to confirm
- Switch to Passthrough mode (F6) if you need to interact with other windows
- In Active mode, click an existing annotation to select it
- Press Delete to remove the selected annotation
- Press F10 to activate spotlight
- A darkened overlay appears with a bright circle following your cursor
- Press F10 again to deactivate
- Press F9 to capture the full screen with all annotations
- Screenshots are saved to
~/Desktop/linuxink_YYYY-MM-DD_HH-MM-SS.png - A toast notification confirms the save
- Mouse and keyboard interact with the overlay
- Draw, select, and manipulate annotations
- Toolbar buttons are responsive
- Click and keyboard input pass through to windows beneath
- Overlay remains visible but you can interact with desktop
- Useful for demonstrating applications while annotations stay on screen
- Hotkeys (F6, F7, etc.) still work in this mode
- Quick Mode Switch: Press F6 to switch between Active and Passthrough without breaking your flow
- Color Selection: Click color buttons to instantly change pen color for the next stroke
- Width Adjustment: Change stroke width before drawing for immediate effect
- Non-Destructive Edits: Undo never erases your workβuse Ctrl+Y to redo
- Layer Annotations: Draw multiple shapes over each other; the most recent annotation appears on top
LinuxInk is built as a single-file Python application with the following components:
- Annotation Classes β Data structures for each drawing tool (Pen, Line, Rectangle, etc.)
- FloatingToolbar β Collapsible control panel with tool, color, and width selection
- AnnotationOverlay β Main fullscreen transparent window handling drawing and rendering
- Global Hotkeys β QShortcut registry for always-active keyboard commands
All code is self-contained in linuxink.py with no external dependencies beyond PyQt6.
MIT License β See LICENSE file for details
Contributions welcome! Open an issue to report bugs or suggest features.
LinuxInk Team β Built for presenters, by presenters.
Need help? Check the hotkey reference above or press Esc to quit at any time.