Traditionally, you begin a mouse gesture by holding down the right mouse button and drawing something, like the letter R for example, then release the right mouse button. This triggers the application to process your drawing and perform the specified action. The most common actions are maximizing/minimizing windows, navigating back/forward, or automated logging into a certain website. However, StrokesPlus takes it to the next level, giving you ultimate control over exactly what happens when your action executes.


  • Native code; no frameworks or runtime dependencies (uses very little RAM)
  • Built-in Lua processor
  • Endless gesture and modifier combinations
  • Granular control over program settings and actions
  • Many time-saving functions exposed to the Lua engine
  • Create global hotkeys for actions without using the mouse

What's New:

  • Added acRelayGesture to relay/inject the last drawn gesture, this is only supported when a mouse button is the Stroke Button (not Control, Alt, etc.), no modifiers are relayed
  • Added option Relay Gesture on No Match* which will (only for mouse based stroke buttons) replay the original mouse down, mouse movements, and mouse up sequence if there was no match
  • This only replays for basic gestures, not actions with mouse wheel firing enabled nor does it replay with modifiers
  • The purpose of this feature is to allow a simple gesture (right click hold) to pass through to the current window if no match in S+ was found
  • If you have a Global Action which uses the same gesture you want a certain app to be passed to, define an action for that app with the desired gesture and call acRelayGesture() in the Lua script
  • Update language.xml to include language.Preferences.AdvancedOptionsFrame.RelayGestureOnNoMatch (default: Relay Gesture on No Match*)