Skip to content

Releases: petoncle/mousemaster

v84

13 Feb 07:21

Choose a tag to compare

v84 Pre-release
Pre-release

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.
    ui-hint-mode.hint.type=ui
    ui-hint-mode.hint.box-horizontal-padding=8
    ui-hint-mode.hint.box-vertical-padding=0
    See documentation: https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#ui-hints

UI hints

  • 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
    normal-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
    See documentation: https://github.com/petoncle/mousemaster/blob/main/configuration/configuration-reference.md#indicator-properties

Indicator customization

  • Macros: Remappings have been unified and renamed to macros (macro and remapping can 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-opacity or indicator.shadow-opacity to 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 +key is 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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v83

18 Nov 18:01

Choose a tag to compare

New features and improvements

  • Fix Korean keyboard layout which was missing the definition of the rightalt key (#54).

Installation

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v82

27 Sep 10:56

Choose a tag to compare

v82

New features and improvements

  • Implemented new focused hint 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-movement which controls how the mouse moves when interacting with hints:
    • no-movement: Mouse stays in its current position
    • mouse-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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v81

05 Aug 06:50

Choose a tag to compare

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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v80

08 Jul 12:41

Choose a tag to compare

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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v78

20 May 16:27

Choose a tag to compare

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 a WH_MOUSE_LL event), the mouse position is now polled using GetCursorPos (#38).

Installation

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v77

24 Apr 21:46

Choose a tag to compare

v77

New features and improvements

  • Removed a special-case property to make the config more consistent.
    Switching between modes is done with the to command, for example:
    idle-mode.to.normal-mode=+leftalt +e
    However, hint modes used a different, special-case property to define what mode to switch to after selecting a hint:
    hint1-mode.hint.mode-after-selection=normal-mode
    This special-case behavior has now been removed in favor of the standard to command.
    It also allowed me to remove hint2-1-mode and hint2-2-mode, and simply have hint1-mode
    and hint2-mode:
    # 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 , . /)
    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 to command.

Installation

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v76

20 Apr 11:46

Choose a tag to compare

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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v75

18 Apr 19:13

Choose a tag to compare

v75

New features and improvements

  • Added a property for hiding the mousemaster console (command line) window.
    hide-console=true
    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:
    taskkill /F /IM mousemaster.exe
    
    You 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.
  • Fixed a crash that would happen when disabling the zoom for the second hint grid.

Installation

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!

v74

12 Apr 09:38

Choose a tag to compare

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

  1. Download mousemaster.exe (a portable executable).
  2. Download one of the existing configuration files:
  3. Place the executable and the configuration file in the same directory.
  4. Rename the configuration file to mousemaster.properties.
  5. Run mousemaster.exe: make sure to run it as administrator if you want the mousemaster overlay to be displayed on top of everything else.
  6. 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.
  7. If you enjoy mousemaster, consider making a donation or stop by the Discord to show your support!