Skip to content

owenpkent/linux-quickdrag

Repository files navigation

Linux Quick Drag

License: MIT Ubuntu 24.04 Version

Click-lock accessibility tool for Linux (Ubuntu 24.04 LTS)

Quick Drag provides click-lock (drag-lock) functionality similar to Windows' ClickLock feature, enabling users with motor disabilities, RSI, or other conditions to perform drag operations without continuously holding the mouse button.

Quick Drag Screenshot

The Problem

Many users with motor disabilities, arthritis, RSI, or tremors find it difficult or painful to:

  • Hold down a mouse button while moving the mouse (drag operations)
  • Perform precise click-and-drag selections
  • Use drag-and-drop interfaces

Windows has solved this with ClickLock. Linux deserves the same.

The Solution

Quick Drag fills this accessibility gap:

  1. Hold the left mouse button for a configurable duration (default: 500ms)
  2. Release - the button stays "locked" in the pressed state
  3. Move the mouse to drag without holding the button
  4. Click again to release the lock

Installation

Ubuntu/Debian (.deb package)

# Download the latest release
wget https://github.com/owenpkent/linux-quickdrag/releases/download/v1.0.0/quickdrag_1.0.0_all.deb

# Install
sudo dpkg -i quickdrag_1.0.0_all.deb

# Install dependencies if needed
sudo apt-get install -f

From Source

# Install dependencies
sudo apt install python3-xlib python3-gi gir1.2-gtk-3.0

# Clone the repository
git clone https://github.com/owenpkent/linux-quickdrag.git
cd linux-quickdrag

# Run
python3 run.py

Usage

GUI Mode (Recommended)

quickdrag
# or
python3 run.py

This launches the settings window where you can:

  • Adjust hold threshold (100-2000ms)
  • Start/Stop the service
  • View real-time status and debug log

Command Line Mode

# Default 500ms threshold
python3 src/quickdrag.py

# Custom threshold
python3 src/quickdrag.py --threshold 750

# With debug logging
python3 src/quickdrag.py --debug

Configuration

Settings are stored in ~/.config/quickdrag/config.json:

{
  "threshold_ms": 500,
  "debug": false
}

System Requirements

  • OS: Ubuntu 24.04 LTS (or compatible Debian-based distribution)
  • Display Server: X11 (Wayland support planned)
  • Python: 3.10+
  • Dependencies: python3-xlib, python3-gi, gir1.2-gtk-3.0

Documentation

Document Description
INTEGRATION.md Ubuntu/GNOME accessibility integration plan
TECHNICAL.md Technical architecture and implementation details
CONTRIBUTING.md Contribution guidelines
CHANGELOG.md Version history

Roadmap

  • Core click-lock functionality (X11)
  • GTK3 settings GUI
  • Configuration persistence
  • System tray indicator
  • Systemd user service for auto-start
  • Wayland support via libinput/uinput
  • GNOME Settings integration
  • Audio/visual feedback on lock activation

Comparison with Windows ClickLock

Feature Windows ClickLock Linux Quick Drag
Activation Hold for configurable time Hold for configurable time
Release Click again Click again
Configuration Control Panel → Mouse GUI or config file
Threshold Slider 100-2000ms numeric
Visual feedback Cursor change Status in GUI

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - See LICENSE for details.

Acknowledgments

  • Inspired by Windows ClickLock accessibility feature
  • Built for the Linux accessibility community
  • Part of efforts to improve Ubuntu accessibility

Related Projects


Made with ❤️ for accessibility

About

Click-lock accessibility tool for Linux - Similar to Windows ClickLock

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors