KeyMaster is a powerful keyboard-driven mouse control utility that allows you to navigate your screen and perform mouse actions without leaving your keyboard. It overlays a customizable grid system on your screen, enabling precise cursor movements and mouse actions through simple key combinations.
- Grid-Based Navigation: Divides your screen into a customizable grid (default 8x8) for precise cursor positioning
- Multi-Screen Support: Seamlessly navigate between multiple monitors using arrow keys
- Multiple Mouse Actions:
- Left, right, and middle click
- Double-click support
- Drag and drop functionality
- Smooth Cursor Movement: Optional smooth cursor transitions between points
- System Tray Integration: Easy access to settings and controls
- Customizable Configuration: Adjust grid size, colors, opacity, and hotkeys
- Always-On-Top Display: Grid overlay stays visible when activated
# Dependencies
pip install PyQt6 keyboard pyautogui
# Clone and run
git clone https://github.com/makalin/keymaster.git
cd keymaster
python keymaster.py
- Press
Cmd
(default) to show the grid overlay - Type a cell coordinate (e.g., 'A1', 'B2') to move the cursor
- Press
Esc
to dismiss the grid
- Change Mouse Button:
- Press
Tab
to cycle between left, right, and middle mouse buttons - Use
right cmd
for right-click - Use
cmd+m
for middle-click
- Press
- Drag and Drop:
- Press
cmd+d
to initiate drag - Select source cell
- Select destination cell
- Press
- Use
Left Arrow
andRight Arrow
to switch between screens while the grid is active
KeyMaster uses a JSON configuration file located at ~/.keymaster/config.json
. Here's the default configuration:
{
"grid_size": 8,
"overlay_opacity": 0.5,
"grid_color": "#FFFFFF",
"background_color": "#000000",
"font_size": 14,
"smooth_movement": true,
"movement_duration": 0.2,
"hotkeys": {
"show_grid": "cmd",
"dismiss_grid": "esc",
"right_click": "right cmd",
"middle_click": "cmd+m",
"start_drag": "cmd+d"
}
}
grid_size
: Number of cells in each row/columnoverlay_opacity
: Transparency of the grid overlay (0.0-1.0)grid_color
: Color of grid lines and labelsbackground_color
: Color of the overlay backgroundfont_size
: Size of cell labelssmooth_movement
: Enable/disable smooth cursor transitionsmovement_duration
: Duration of smooth movements in secondshotkeys
: Customize keyboard shortcuts
- Python 3.6+
- PyQt6
- keyboard
- pyautogui
Contributions are welcome! Please feel free to submit a Pull Request.
KeyMaster was inspired by keyboard-driven navigation tools and aims to improve productivity for users who prefer keyboard-based controls.