{"id":13682326,"url":"https://github.com/petoncle/mousemaster","last_synced_at":"2026-02-13T11:45:45.533Z","repository":{"id":213992358,"uuid":"735408417","full_name":"petoncle/mousemaster","owner":"petoncle","description":"Efficiently control your mouse with keyboard inputs for a completely mouseless experience.","archived":false,"fork":false,"pushed_at":"2025-12-22T07:50:15.000Z","size":42100,"stargazers_count":642,"open_issues_count":13,"forks_count":26,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-12-23T18:58:38.114Z","etag":null,"topics":["accessibility","cursor","ergonomic","keyboard","keyboard-mapping","keyboard-remap","keymouse","keynav","mouse","mouse-control","mouse-emulation","mouse-emulator","mouse-key","mouseless","pointer","productivity","thinkpad","trackpoint","vim","vimium"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petoncle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"petoncle"}},"created_at":"2023-12-24T20:19:28.000Z","updated_at":"2025-12-22T13:58:45.000Z","dependencies_parsed_at":"2024-01-08T16:48:03.856Z","dependency_job_id":"c1a7f06c-aad0-411a-b14d-046f739ad9e5","html_url":"https://github.com/petoncle/mousemaster","commit_stats":null,"previous_names":["petoncle/mousemaster"],"tags_count":84,"template":false,"template_full_name":null,"purl":"pkg:github/petoncle/mousemaster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petoncle%2Fmousemaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petoncle%2Fmousemaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petoncle%2Fmousemaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petoncle%2Fmousemaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petoncle","download_url":"https://codeload.github.com/petoncle/mousemaster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petoncle%2Fmousemaster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29403906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","cursor","ergonomic","keyboard","keyboard-mapping","keyboard-remap","keymouse","keynav","mouse","mouse-control","mouse-emulation","mouse-emulator","mouse-key","mouseless","pointer","productivity","thinkpad","trackpoint","vim","vimium"],"created_at":"2024-08-02T13:01:44.276Z","updated_at":"2026-02-13T11:45:45.527Z","avatar_url":"https://github.com/petoncle.png","language":"Java","funding_links":["https://ko-fi.com/petoncle"],"categories":["Java"],"sub_categories":[],"readme":"# mousemaster\n\n\u003ca href=\"https://discord.gg/GSB6MaKb2R\"\u003e\u003cimg src=\"https://img.shields.io/discord/854326924402622474?color=%235865F2\u0026label=discord\" alt=\"Join Discord Chat\"\u003e\u003c/a\u003e\n\n- A keyboard driven interface for mouseless mouse manipulation\n- Heavily inspired by [warpd](https://github.com/rvaiya/warpd)\n  and [mouseable](https://github.com/wirekang/mouseable/)\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e •\n\u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e •\n\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n\u003ca href=\"#configuration\"\u003eConfiguration\u003c/a\u003e •\n\u003ca href=\"#troubleshooting\"\u003eTroubleshooting\u003c/a\u003e •\n\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n## Demo\n\n### Hints Demo\nhttps://github.com/user-attachments/assets/cfba2c70-7edd-44bf-b63e-ded1613368da\n\n### Hint Styling Showcase\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/6b2fb130-3213-4338-bda5-0c7c4969a433\" style=\"width: 100%; height: 100%;\" /\u003e\n\u003c/p\u003e\n\n### Grid Demo\nhttps://github.com/petoncle/mousemaster/assets/39304282/12677e9e-3126-4694-b4bc-5a18e9438bc9\n\n### Mouse Movements Demo\nhttps://github.com/petoncle/mousemaster/assets/39304282/2dadbfa0-1270-41ff-9e18-3fb3a28d5b6f\n\n## Overview\n\nmousemaster allows you to control your mouse cursor using only your keyboard. It provides multiple navigation methods:\n\n- **Normal mode**: Move the mouse cursor with keyboard keys (IJKL by default)\n- **Hint mode**: Display labeled hints (letters/numbers) across the screen that you can select with keystrokes to instantly move the cursor to that location\n- **Grid mode**: Divide the screen into a grid that you can progressively refine to narrow down to a specific area\n- **Screen selection mode**: Quickly move between multiple monitors\n\nAll modes and key bindings are fully customizable through a configuration file.\n\n## Installation\n\n1. Download **mousemaster.exe** (a portable executable) from the [Release page](https://github.com/petoncle/mousemaster/releases/latest), or build it from source.\n2. In the same Release page, choose and download one of the existing configuration files:\n   - **neo-mousekeys-ijkl.properties** (***recommended***): an IJKL configuration ([see documentation](configuration/neo-mousekeys-ijkl.md))\n   - **neo-mousekeys-wasd.properties**: a WASD configuration ([see documentation](configuration/neo-mousekeys-wasd.md))\n   - **warpd.properties**: an HKJL configuration ([see documentation](configuration/warpd.md))\n   - **mouseable.properties**: another HKJL configuration ([see documentation](configuration/mouseable.md))\n   - **author.properties**: an IJKL configuration designed to control everything with the right hand only ([see documentation](configuration/author.md))\n3. Place the executable and the configuration file of your choice in the same directory.\n4. Rename the configuration file to **mousemaster.properties**.\n5. Run **mousemaster.exe**: make sure to run it as administrator if you want the\n   mousemaster overlay to be displayed on top of everything else.\n6. Feel free to open a [GitHub Issue](https://github.com/petoncle/mousemaster/issues)\n   or join the [Discord](https://discord.gg/GSB6MaKb2R) if you need help creating your own\n   configuration. If you have ideas for a better configuration that\n   you would like to share, I'd love to hear from you.\n\n## Usage\n\n### Default Configuration (neo-mousekeys-ijkl)\n\nThe recommended configuration uses the following key bindings:\n\n- **Activate**: Press _leftalt + e_ or _leftalt + capslock_\n- **Deactivate**: Press _q_ or _p_\n- **Mouse movement**: Use _i_ (up), _j_ (left), _k_ (down), _l_ (right)\n- **Mouse buttons**: _;_ (left), _rightshift_ (middle), _'_ (right)\n- **Grid mode**: Press _g_\n- **Hint mode**: Press _f_\n- **Screen selection**: Press _c_\n\n![neo-mousekeys-ijkl layout](https://github.com/user-attachments/assets/5e0aa96d-96f2-4349-9b2f-26dcca4933c0)\n\nFor a complete reference, see the [neo-mousekeys-ijkl documentation](configuration/neo-mousekeys-ijkl.md).\n\n## Features\n\n1. **Key combination system**: Supports complex key combinations including timed holds (e.g., \"hold alt for 1 second\"), sequential presses (e.g., \"press then release alt, twice in a row\"), and nested combinations (e.g., \"hold alt while pressing A then B\").\n\n2. **Mode-based architecture**: Implements a mode system where each mode has its own key-to-command mappings and mouse settings. The default \"idle-mode\" represents the disabled state with no active key mappings.\n\n3. **Many-to-many command mapping**: Supports multiple key combinations triggering the same command and single key combinations triggering multiple commands.\n\n4. **Multi-monitor support**.\n\n5. **Grid navigation**: Implements a grid-based cursor positioning system that can target either the active screen or the active window.\n\n6. **Hint-based navigation**: Features a Vimium-style hint system that can target the active screen, active window, or all screens.\n\n7. **Key remapping system**: Includes a way to remap keys and activate the remapping only in specific modes. For example, you can make it so pressing a single key is equivalent to sending the combo _⊞ Win + down arrow_, which will minimize the current window.\n\n8. **Zoom functionality**: Supports configurable zoom behavior per mode.\n\n9. **Application-specific configurations**: Provides context-aware mode switching based on the focused application, allowing for application-specific behavior (e.g., disabling mousemaster shortcuts in games).\n\n10. **Live configuration**: Implements automatic configuration reloading when the configuration file is modified.\n\n11. **Visual feedback system**: Provides an optional mouse indicator that changes color based on cursor state (idle, moving, clicking, scrolling) and repositions to remain visible near screen edges.\n\n12. **Position history hints**: absolute positions can be saved on the fly to make it possible to move the mouse to them later.\n\n## Configuration\n\nmousemaster is highly configurable through its configuration file. The configuration file is automatically reloaded when saved.\nFor a complete reference of all configuration concepts and options, see the [configuration reference](configuration/configuration-reference.md). The reference document covers key aliases, combos, modes, mouse properties, hint properties, grid properties, app aliases, position history, logging, keyboard layout, and more.\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Overlay not visible in some applications**:\n   - Run mousemaster.exe as administrator to ensure the overlay appears on top of all windows\n\n2. **Keyboard layout issues**:\n   - If your keyboard layout isn't automatically detected, specify it in the configuration:\n     ```properties\n     forced-active-keyboard-layout=us-dvorak\n     ```\n     See [Keyboard layout](configuration/configuration-reference.md#keyboard-layout)\n     for more details.\n\n4. **Conflicts with other applications**:\n   - Create app-specific modes to disable mousemaster in certain applications:\n     ```properties\n     app-alias.gameapp=valorant.exe GTA5.exe\n     idle-mode.to.game-mode=_{gameapp}\n     game-mode.to.idle-mode=^{gameapp}\n     ``` \n     See [App aliases](configuration/configuration-reference.md#app-aliases) for more details.\n\n## Contributing\n\nContributions to mousemaster are welcome! \n\n- **Share a configuration**: If you have ideas for a new or improved configuration that you would like to share, open an issue or join the [Discord](https://discord.gg/GSB6MaKb2R).\n\n\n- **Cross-platform support:** mousemaster currently supports Windows only. However, most of the overlay has been reimplemented using Qt, making it cross-platform-ready. The remaining work includes integrating support for global keyboard and mouse input handling and input simulation on macOS and Linux.\n\n  If you're interested in helping extend mousemaster to these platforms, your contributions are very welcome. Please open an issue or join the Discord to get involved.\n\nIf you enjoy mousemaster, consider making a [donation](https://ko-fi.com/petoncle) or stop by the Discord to show your support!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetoncle%2Fmousemaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetoncle%2Fmousemaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetoncle%2Fmousemaster/lists"}