A simple wayland auto-clicker for Linux, built with Python and GTK4/Adwaita.
- High-Speed Clicking: You can set custom click intervals in the milliseconds.
- Trigger Modes:
- Toggle: Press a hotkey to start/stop clicking.
- Hold: Clicks only while the hotkey is held down, or configure it to just toggle.
- Burst Mode: Configure a set number of clicks to be fired in bursts with a configurable delay between them.
- Humanizer: Adds a slight randomization to the click interval to mimic human behavior, slightly broken.
- Custom Hotkey: Set any key on your keyboard as the trigger.
- UI: A clean and simple user interface using Adwaita.
- Configuration: Your settings are saved automatically.
This application is mostly designed for Arch Linux and its derivatives, the setup script uses pacman for package management.
ydotool: For input events.python-evdev: For listening to keyboard events for the hotkey.gtk4,libadwaita,python-gobject: For the user interface.alsa-utils: For audio feedback.
-
Clone the repository:
git clone <https://github.com/hnpf/automate> cd Automate chmod +x ./run.sh
-
Run the setup script: The provided
run.shscript will automatically:- Install all the required dependencies using
pacman. - Start the
ydotoolddaemon required forydotoolto function. - Launch the application with the necessary permissions.
./run.sh
Note: The script uses
sudoto install packages and run the application with the required permissions to control input devices. - Install all the required dependencies using
- All settings from the UI are saved in the
.automate_cfg.jsonfile in the project's root directory. You can manually edit this file, but it's recommended to just manage settings through the application's UI.
The application is split into two main components:
- Backend: A Python class that handles the core logic of clicking, hotkey listening, and state management. It runs in separate threads to keep the UI responsive.
- Frontend: A GTK4/Adwaita user interface that provides controls for all the backend features.
Hotkeys are captured using evdev by listening directly to kernel input events, making it reliable for global hotkey detection. Clicks are simply handled by the ydotool dependency.
