โ† Back to DevOps & Cloud
DevOps & Cloud by @zeyuyuyu

hidpi-mouse

Universal HiDPI mouse click handling for Linux desktop automation

0
Source Code

HiDPI Mouse Skill

Universal mouse coordinate handling for desktop automation across different screen configurations.

๐Ÿš€ Quick Start

# 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

./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

./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

./scripts/detect-scale.sh           # Returns scale (e.g., 2.08)

Other scripts

./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:

./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

# Run calibration
./scripts/calibrate.sh

# Or manually adjust
./scripts/calibrate.sh set 2.1  # Try different values

Check current configuration

./scripts/calibrate.sh info

Reset everything

./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

# 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