Enable gestures without need for "Gesture Pad"
Malan de Wet
I really like this gesture feature and have been wanting it for ages. The only thing that stops me from using this extension is the requirement that gestures must be performed in the gesture pad instead of directly in the VSCode panels or working area.
I understand there is a good chance this is due to a VSCode API limitation.
As an example, the Vivaldi browser implements this well by allowing gestures anywhere on an open webpage. For VSCode, this would mean performing gestures directly in an open file or even a blank screen. Perhaps gestures could even do different things based on the context of the panel the mouse started in. e.g. in an open file the 'L' gesture could jump to the previous file, while in the explorer panel 'L' could close the explorer panel.
AP
Hi Malan,
Your feedback is really appreciated. Thank you for laying it out so clearly.
To be completely transparent, the original intent for this extension was to do exactly what you described and how extensions in browsers like Vivaldi work. Having gestures work directly in any panel is the ultimate goal.
Unfortunately, this is not possible with the VS Code API at the moment. The API simply does not provide a way to globally capture mouse events across the entire UI. This is a deliberate design choice by the VS Code team to prevent extensions from breaking core functionality (like text selection or drag-and-drop). The "Gesture Pad" is the necessary workaround, as it's the only place the API allows an extension to reliably capture a full gesture.
Context-Aware Gestures
Your idea about using context to assign different actions to the same gesture (e.g., in the editor vs. the explorer) is fantastic.
I'm happy to say this is something I'm actively working on, and I already have a Pull Request in progress for this feature.
The problem here is still the VS Code API. It doesn't provide a simple solution for detecting context. We definitely can do it, but each 'context' has to be implemented explicitly, and it's often more of a workaround than a clean, native solution. But it's an improvement I'm excited about.
To help me prioritize the development of this, I'd love to hear more. Do you have a concrete workflow in your mind where this would be most helpful?
Thanks again for the great suggestions