🖐️ Control your computer completely with hand gestures using a webcam. No mouse or touchpad required.
LyraPointer is a Python-based application that uses computer vision to track hand movements and map them to system mouse and keyboard actions. It is designed to be a complete mouse replacement.
- ✅ Complete Mouse Replacement: Move, click, double-click, right-click, drag, and scroll.
- ✅ Customizable Gestures: Configure gesture-to-action mappings via YAML.
- ✅ Visual Feedback: Real-time visualization of hand skeleton and gesture status.
- ✅ Background Operation: Minimizes to system tray.
- ✅ Optimized Performance: Smooth tracking with One Euro Filter, optimized for entry-level GPUs (e.g., MX350).
LyraPointer is built on the shoulders of giants. We gratefully acknowledge the following open-source projects:
- MediaPipe (Apache-2.0): For robust and real-time hand tracking.
- OpenCV (Apache-2.0): For image processing and camera input.
- PyAutoGUI (BSD): For cross-platform mouse and keyboard control.
- pystray (LGPL/MIT): For system tray integration.
- One Euro Filter: For adaptive jitter reduction and smoothing.
- Python 3.11 or 3.12 (MediaPipe does not support Python 3.13 yet)
- Webcam
- Linux / Windows / macOS
# Install Python 3.12
sudo pacman -S python312
# Create virtual environment
python3.12 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt# Install dependencies
sudo apt install python3-pip python3-venv
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt# Create virtual environment
python -m venv .venv
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Activate virtual environment
source .venv/bin/activate
# Run LyraPointer
python run.py| Gesture | Action |
|---|---|
| 👆 Index Finger Pointing | Move Cursor |
| 👌 Thumb + Index Pinch | Left Click |
| 🤏 Thumb + Middle Pinch | Right Click |
| ✌️ Index + Middle Extended | Scroll Mode (Move hand up/down) |
| ✋ Open Palm | Pause/Resume Control |
| ✊ Fist | Rest (No action) |
Q- Quit applicationP- Pause/Resume controlV- Show/Hide visualizer window
You can customize gestures, sensitivity, and other settings in config/gestures.yaml.
This project is licensed under the MIT License - see the LICENSE file for details.