DevOps
hidpi-mouse
Universal HiDPI mouse click handling for Linux desktop automation.
---
name: hidpi-mouse
description: Universal HiDPI mouse click handling for Linux desktop automation. Auto-detects scale factor or allows calibration for any screen resolution/DPI. Converts Claude display coordinates to xdotool screen coordinates.
metadata: {"os": ["linux"], "requires": {"bins": ["xdotool", "scrot", "python3"]}}
user-invocable: false
---
# HiDPI Mouse Skill
Universal mouse coordinate handling for desktop automation across different screen configurations.
## π Quick Start
```bash
# Click at Claude display coordinates (auto-scales)
./scripts/click.sh 500 300
# First time? Run calibration for best accuracy
./scripts/calibrate.sh
```
## π How It Works
When Claude displays a screenshot, it scales it down. This skill converts coordinates:
```
Claude Display Coords β Scale Factor β xdotool Screen Coords
```
The scale factor depends on:
- Screen resolution (1080p, 1440p, 4K, etc.)
- DPI settings (96, 144, 192, etc.)
- Claude's display viewport
## π§ Scripts
### click.sh - Click at coordinates
```bash
./scripts/click.sh <x> <y> # Auto-scaled click
./scripts/click.sh --raw <x> <y> # No scaling (screen coords)
./scripts/click.sh --double <x> <y> # Double click
./scripts/click.sh --right <x> <y> # Right click
```
### calibrate.sh - Setup & Configuration
```bash
./scripts/calibrate.sh # Interactive calibration
./scripts/calibrate.sh info # Show current config
./scripts/calibrate.sh test # Test current scale
./scripts/calibrate.sh set 2.08 # Manually set scale
./scripts/calibrate.sh reset # Reset to auto-detect
```
### detect-scale.sh - Get scale factor
```bash
./scripts/detect-scale.sh # Returns scale (e.g., 2.08)
```
### Other scripts
```bash
./scripts/move.sh <x> <y> # Move mouse
./scripts/drag.sh <x1> <y1> <x2> <y2> # Drag
./scripts/reliable_click.sh <x> <y> [--window "Name" --relative]
```
## π― Calibration (Recommended for New Systems)
For best accuracy on your specific system:
```bash
./scripts/calibrate.sh
```
This will:
1. Create a calibration image with markers at known positions
2. Ask you where the markers appear in Claude's display
3. Calculate and save the exact scale factor
## π Common Scale Factors
| Screen | DPI | Typical Scale |
|--------|-----|---------------|
| 1920Γ1080 | 96 | 1.0 - 1.2 |
| 2560Γ1440 | 96 | 1.3 - 1.5 |
| 3024Γ1772 | 192 | 2.08 |
| 3840Γ2160 | 192 | 2.0 - 2.5 |
## π Troubleshooting
### Clicks are offset
```bash
# Run calibration
./scripts/calibrate.sh
# Or manually adjust
./scripts/calibrate.sh set 2.1 # Try different values
```
### Check current configuration
```bash
./scripts/calibrate.sh info
```
### Reset everything
```bash
./scripts/calibrate.sh reset
rm -f /tmp/hidpi_scale_cache
```
## π Configuration Files
- `~/.config/hidpi-mouse/scale.conf` - User-set scale (highest priority)
- `/tmp/hidpi_scale_cache` - Auto-detected scale cache (1 hour TTL)
## π Universal Compatibility
This skill auto-adapts to:
- β
Different screen resolutions (1080p to 4K+)
- β
Different DPI settings (96, 120, 144, 192, etc.)
- β
HiDPI/Retina displays
- β
Multi-monitor setups (primary display)
## π‘ Usage Tips
1. **Always calibrate** on a new system for 100% accuracy
2. **Re-calibrate** if you change display settings
3. **Use `--raw`** if you already have screen coordinates
4. **Check `calibrate.sh info`** to see current settings
## π Example Workflow
```bash
# 1. Take screenshot
scrot /tmp/screen.png
# 2. View in Claude, identify button at display coords (500, 300)
# 3. Click it
./scripts/click.sh 500 300
# 4. If off-target, calibrate
./scripts/calibrate.sh
```
---
*Tested on: Ubuntu/Debian with X11, various resolutions and DPI settings*
devops
By
Comments
Sign in to leave a comment