Skip to content

About

Turn one physical mouse click into N clicks per button — a turbo/rapid-fire click multiplier for Linux/X11 (GTK).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multiclick

A tiny GTK utility for Linux that turns one physical mouse click into many. For each button (left, right, middle) you flip a switch and choose a count N; when you press that button once, Multiclick fires N clicks. Handy as a turbo / rapid-fire helper for games, testing, or any repetitive clicking.

  • Read raw button presses straight from the mouse with python-evdev.
  • Inject the extra clicks through XTEST via xdotool. Because XTEST events are invisible to evdev, the synthetic clicks never retrigger the tool (no feedback loop).
  • Remember your settings in a small JSON config file.

How it works: a physical press is click #1. For an enabled button with count N, Multiclick schedules the remaining N − 1 clicks, spaced 20 ms apart.

Requirements

  • Linux running an X11 session (uses xdotool / xinput; Wayland is not supported).
  • python3 with PyGObject / GTK 3
  • python-evdev
  • xdotool (injects the extra clicks)
  • xinput (detects whether your mouse is connected)

Install the dependencies:

# Debian / Ubuntu / Zorin / Mint
sudo apt install python3-gi gir1.2-gtk-3.0 python3-evdev xdotool xinput

# Fedora
sudo dnf install python3-gobject gtk3 python3-evdev xdotool xinput

# Arch
sudo pacman -S python-gobject gtk3 python-evdev xdotool xorg-xinput

Permission to read the mouse

Reading raw events from /dev/input/* requires membership in the input group. Add yourself once, then log out and back in:

sudo usermod -aG input "$USER"

If Multiclick shows "Permission needed" while a button is enabled, this is why.

Run

git clone https://github.com/azzamalmutairi/multiclick.git
cd multiclick
python3 multiclick.py

Optionally put it on your PATH so the desktop launcher and multiclick command work from anywhere:

install -Dm755 multiclick.py ~/.local/bin/multiclick

Choose your mouse

Multiclick targets a mouse by its name. List the devices X can see:

python3 multiclick.py --list-devices

Pick the line matching your mouse and save it:

python3 multiclick.py --set-device "Your Mouse Name"

Other ways to select the device (highest priority first):

  1. --device "Your Mouse Name" — for a single run
  2. MULTICLICK_DEVICE="Your Mouse Name" — environment variable
  3. the device field in the config file (set by --set-device)
  4. a built-in fallback (PixArt Gaming Mouse)

Configuration & state

Settings are stored as JSON at:

${XDG_CONFIG_HOME:-~/.config}/multiclick/config.json

Example:

{
  "device": "PixArt Gaming Mouse",
  "buttons": {
    "left":   { "enabled": false, "count": 5 },
    "right":  { "enabled": false, "count": 5 },
    "middle": { "enabled": true,  "count": 7 }
  }
}

Counts are clamped to the range 2–50. Changes made in the window are saved immediately.

Stopping it

Toggle the switches off (or press Stop all) to stop multiplying, or just close the window to quit — everything reverts to normal clicking.

Desktop launcher

multiclick.desktop runs the multiclick command (install it on your PATH as shown above). To install the launcher for your user:

install -Dm644 multiclick.desktop ~/.local/share/applications/multiclick.desktop

If you prefer not to add multiclick to your PATH, edit the Exec= line to point at the script, e.g. Exec=python3 /full/path/to/multiclick.py.

نبذة بالعربية

أداة صغيرة على لينكس (X11) تحوّل ضغطة واحدة إلى عدة ضغطات. لكل زر (يسار، يمين، أوسط) تفعّل المفتاح وتختار العدد، فتصبح الضغطة الواحدة عدة ضغطات — مفيدة كـ«تيربو / ضغط سريع». تقرأ الأداة أحداث الأزرار عبر python-evdev وتُطلق الضغطات الإضافية عبر xdotool، وتحفظ الإعدادات في ~/.config/multiclick/config.json. حدّد ماوسك باسمه عبر --list-devices ثم --set-device. قد تحتاج لإضافة مستخدمك إلى مجموعة input: sudo usermod -aG input "$USER".

License

MIT — see LICENSE.

About

Turn one physical mouse click into N clicks per button — a turbo/rapid-fire click multiplier for Linux/X11 (GTK).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages