Releases: petoncle/mousemaster
v84
New features and improvements
- UI hints: New hint type (
hint.type=ui) that uses the Windows UI Automation API to detect interactive elements (buttons, links, text fields, checkboxes, etc.) in the active window and display a hint label on each one. Similar to Vimium-like browser extensions, but applicable to any application. Note: UI hints are slower to display than regular grid hints because querying UI elements from the OS is expensive. UI hints have been added to the neo-mousekeys configurations, activated with leftalt + f in normal mode.See documentation: https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#ui-hintsui-hint-mode.hint.type=ui ui-hint-mode.hint.box-horizontal-padding=8 ui-hint-mode.hint.box-vertical-padding=0
- Indicator redesign: Implemented new customization options for the indicators. Each indicator property can now be customized per mouse state (
idle,move,wheel,mouse-press,left-mouse-press,middle-mouse-press,right-mouse-press,unhandled-key-press). Non-idle states inherit from the idle state. New indicator features include:- Custom polygon shape via
edge-count(3 = triangle, 4 = square, 100 = circle, etc.) - Inner and outer outlines with configurable thickness, color, opacity, and fill percent
- Drop shadow with blur radius, color, opacity, and offset
- Text label with font styling, outline, and shadow
See documentation: https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#indicator-propertiesnormal-mode.indicator.idle.edge-count=4 normal-mode.indicator.idle.color=#FF0000 normal-mode.indicator.move.color=#00FF00 normal-mode.indicator.idle.outer-outline-thickness=3 normal-mode.indicator.idle.inner-outline-color=#CC0000 normal-mode.indicator.idle.shadow-blur-radius=10 normal-mode.indicator.idle.label-text=n
- Custom polygon shape via
-
Macros: Remappings have been unified and renamed to macros (
macroandremappingcan be used interchangeably). Macros allow automating both the operating system and mousemaster itself. Use cases include remapping keys, launching apps, chaining mousemaster commands (e.g. selecting a specific screen in one key press), or typing text. New features:'text'syntax for typing strings independently of the active keyboard layout.# Remap v to Ctrl+V normal-mode.macro.paste=+v -> +leftctrl +v -v -leftctrl # Launch notepad with Win+F1 idle-mode.macro.notepad=_{leftwin} +f1 -> +leftwin +r -r -leftwin wait-100 'notepad' +enter -enter # Select the second screen with F12 (c opens screen hints, k selects the second one) normal-mode.macro.selectsecondscreen=+f12 -> c k
See documentation: https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#macros
-
Shadow stacking: Setting
hint.font-shadow-opacityorindicator.shadow-opacityto values greater than 1.0 now stacks multiple shadow layers to produce a stronger shadow effect. -
Hint shadow transparency: Hint label shadow no longer shows through transparent text.
-
Hint rendering performance: Hints are now rendered using a single widget instead of one per hint box and label, fonts are pre-warmed when loading the configuration, and hint mesh screenshots are deferred to the next frame.
-
Default combo move max duration changed to infinity: Previously, combo moves had a limited default max duration. The default is now infinite, meaning
+keyis equivalent to+key-0(press for at least 0ms, no upper limit). This can still be overridden with explicit durations like+key-0-500. -
Center mouse after Alt-Tab: The neo-mousekeys configurations now automatically center the mouse on the newly active window after using Alt-Tab to switch windows.
-
Combo app preconditions re-evaluated on active app change: App precondition combos are now re-evaluated when the active application changes, allowing combos to trigger based on app-switch events.
-
Any-order combo move sets: New
{...}syntax groups moves that can occur in any order. This is expanded into all possible orderings at parse time:# Release leftctrl and f in any order normal-mode.to.idle-mode=+leftctrl +f {-f -leftctrl}
-
Fixed font metrics using the primary screen DPI instead of the hint window's screen DPI.
-
Improved ActiveAppFinder to ignore windows that are transitioning from a minimized state and zero-sized windows.
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v83
New features and improvements
- Fix Korean keyboard layout which was missing the definition of the rightalt key (#54).
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v82
New features and improvements
- Implemented new
focusedhint key state for greater styling flexibility. See documentation:
https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#hint-prefix - Added new hint property
hint.mouse-movementwhich controls how the mouse moves when interacting with hints:no-movement: Mouse stays in its current positionmouse-follows-selected-hint: Mouse moves to the selected hint (default behavior)mouse-follows-hint-grid-center: Mouse moves to the center of the hint grid (i.e. mouse follows every key presses)
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v81
New features and improvements
- Resolved an issue with the alt key in apps like File Explorer and Notepad (#5)
- Fixed a bug where tab key had to be released between desktop switches
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v80
New features and improvements
- Prevented a recursive invocation of the Windows key event callback (#48).
- Fixed a crash that could happen when the system keyboard layout is changed.
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v78
New features and improvements
- Added support for using keyboard layout identifiers even when a short name is not defined. Also added a short name for the Swedish layout, which can now be referenced in the config file as
sv-qwerty. - Improved mouse input handling: in cases where other applications use
SetCursorPos(which does not trigger aWH_MOUSE_LLevent), the mouse position is now polled usingGetCursorPos(#38).
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v77
New features and improvements
- Removed a special-case property to make the config more consistent.
Switching between modes is done with thetocommand, for example:However, hint modes used a different, special-case property to define what mode to switch to after selecting a hint:idle-mode.to.normal-mode=+leftalt +eThis special-case behavior has now been removed in favor of the standardhint1-mode.hint.mode-after-selection=normal-modetocommand.
It also allowed me to remove hint2-1-mode and hint2-2-mode, and simply have hint1-mode
and hint2-mode:This is a backward-incompatible change, but I believe it's for the best: it improves flexibility, and makes the configuration more consistent by reusing the existing# Go back to normal-mode when the last letter of the hint is pressed. hint1-mode.to.normal-mode=+hint1key # Switch to hint2-mode (showing the second hint grid) when the last letter of the hint # is pressed while holding leftshift. hint1-mode.to.hint2-mode=_{leftshift} +hint1key # (hint1key is already defined at the top of the config: key-alias.hint1key.us-qwerty=q w e r t a s d f g z x c v b y u i o p h j k l ; n m , . /)
tocommand.
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v76
New features and improvements
- Added support for the Halmak keyboard layout (#37). Add the following property to the config file to tell mousemaster that the current keyboard layout is Halmak:
keyboard-layout=us-halmak
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v75
New features and improvements
- Added a property for hiding the mousemaster console (command line) window.
When the console window is hidden, you can stop mousemaster by killing the mousemaster.exe process either via the task manager or with Win+R:
hide-console=trueYou can toggle visibility by setting hide-console to true or false and saving the configuration file. I would recommend that you keep it visible when making changes to your config, and only when you confirm that your config works as expected, hide the console.taskkill /F /IM mousemaster.exe - Fixed a crash that would happen when disabling the zoom for the second hint grid.
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!
v74
New features and improvements
- Fixed a bug with the hint prefix not being displayed in a multi-screen set up (#26).
- Fixed a bug that would prevent the physical mouse from being used when the mousemaster zoom is active (#35).
Installation
- Download mousemaster.exe (a portable executable).
- Download one of the existing configuration files:
- neo-mousekeys-ijkl.properties (recommended): an IJKL configuration (see documentation)
- neo-mousekeys-wasd.properties: a WASD configuration (see documentation)
- warpd.properties: an HKJL configuration (see documentation)
- mouseable.properties: another HKJL configuration (see documentation)
- author.properties: an IJKL configuration designed to control everything with the right hand only (see documentation)
- Place the executable and the configuration file in the same directory.
- Rename the configuration file to mousemaster.properties.
- Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
- Feel free to open a GitHub Issue or join the Discord if you need help creating your own configuration. If you have ideas for a better configuration that you would like to share, I'd love to hear from you.
- If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

