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.cell-horizontal-padding=8 ui-hint-mode.hint.cell-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.
-
Added full font styling for selected/focused key states. Before, it was limited to color and opacity. Now, even the font weight and shadow can be customized.
-
Reworked the shadow rendering. Before, shadows did not look good with transparent text because the shadow would be visible through the text. Now, the text takes precedence and the shadow is only rendered outside the text.
-
Hints are built then drawn on the next frame to avoid a lag spike the first time they are rendered (with neomousekeys-ijkl.properties, pressing f would show hints after ~0.3s and the f key would be typed because of the lag spike).
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!

