petoncle / mousemaster

Efficiently control your mouse with keyboard inputs only.
17 stars 4 forks source link
accessibility cursor ergonomic graalvm java keyboard keynav mouse mouse-emulator mouseless pointer productivity thinkpad trackpoint vim vimium windows

mousemaster

Join Discord Chat

DemoInstallationFeaturesNotes

Demo

Hints Demo

https://github.com/petoncle/mousemaster/assets/39304282/841216ac-08a9-408a-8cd7-6558941afd3c

Grid Demo (1/2)

https://github.com/petoncle/mousemaster/assets/39304282/12677e9e-3126-4694-b4bc-5a18e9438bc9

Grid Demo (2/2)

https://github.com/petoncle/mousemaster/assets/39304282/105c6a2d-2849-4d23-b706-1fc9410ae680

Mouse Movements Demo (1/2)

https://github.com/petoncle/mousemaster/assets/39304282/2dadbfa0-1270-41ff-9e18-3fb3a28d5b6f

Mouse Movements Demo (2/2)

https://github.com/petoncle/mousemaster/assets/39304282/a7e82696-a5c8-45c2-b100-d905a8daba30

Installation

  1. Download mousemaster.exe (a portable executable) from the Release page, or build it from source.
  2. In the same Release page, choose then download one of the existing configuration files:
  3. Place the executable and the configuration file of your choice in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe.
  6. Don't hesitate to open a GitHub Issue or join the Discord if you need help creating your own configuration.

Features

  1. Dynamic configuration: The configuration file is live, automatically reloading upon any saved changes.

  2. Adaptive mouse indicator: The optional and customizable mouse indicator (a plain-color square drawn next to the mouse cursor) changes colors based on mouse activity—idle, moving, button pressing, or scrolling. It repositions itself to stay visible when the mouse is near screen edges.

  3. Multi-screen navigation: mousemaster allows for mouse movement across multiple screens.

  4. Advanced key combinations (key combos): mousemaster offers an advanced level of customization for key combinations. It allows for advanced key combos like "hold alt for 1 second" or "press then release alt, twice in a row".

  5. Left/right key distinction: mousemaster distinguishes between left and right alt/ctrl/shift keys, meaning that left alt and right alt can be used to trigger different commands.

  6. No key is special: All keys are treated the same way, meaning that for example, you can implement a "hold capslock then press enter" combo just like you would implement a "hold alt then press X" combo.

  7. Does not conflict with other applications: mousemaster tries not to clash with other apps using shortcuts. Key events that are not part of any combos are passed onto other apps.

  8. Many-to-many key combo -> command mapping: The same key combo can be used to trigger multiple commands. Multiple key combos can be used to trigger the same command.

  9. Custom modes: Users have to define their own modes, with each mode having its own key combo-to-command map and mouse settings. There is only one predefined mode, the "idle-mode", which has no key combos predefined (this is the "mousemaster is disabled mode").

  10. Mode timeout: A timeout can be set on a mode to switch to another mode after some idle time. This can be used for automatically disabling mousemaster after a while.

  11. Grids: mousemaster incorporates a grid-based navigation system. A grid can cover the active screen or the active window.

  12. Hints: mousemaster incorporates a hint-based navigation system similar to Vimium's. A hint grid can cover the active screen, the active window, or all screens (that last one can be used for screen selection hints). A mouse button click can be automatically triggered after a hint is selected.

  13. Position history hints: mousemaster incorporates position history hints. The position history hints are not limited to a single screen (unlike warpd).

Notes