Feature Request: Add Trackpad Gesture Support
I would like to propose adding trackpad gesture support for window management, inspired by functionalities I previously used in Better Touch Tool (BTT). Since BTT has moved to a mandatory paid model, I believe integrating similar features into this project would be highly beneficial for users who rely on trackpad gestures for productivity.
Proposed Gestures and Actions:
-
Move/Resize Window:
- Gesture: Single finger resting on the trackpad + another finger tapping.
- Action: Activates window movement or resizing mode, allowing users to drag or resize windows easily.
-
Hide Window:
- Gesture: Three-finger swipe down.
- Action: Hides the active window (similar to minimizing or hiding to the dock).
-
Close Window:
- Gesture: Three-finger tap.
- Action: Closes the active window (similar to clicking the red close button).
-
Quit Application:
- Gesture: Three-finger press (force touch).
- Action: Quits the active application entirely.
Follow-up Note to Maintainers:
Hi there! 👋
I’ve drafted this feature request to add trackpad gesture controls for window management (inspired by Better Touch Tool). I’m willing to implement this feature myself and contribute the code, including thorough testing. Before diving into development, I wanted to check:
- Is this a direction the project would consider accepting?
- Are there any design/technical guidelines I should follow to align with the project’s vision?
If this feature doesn’t fit the project’s roadmap, I completely understand! In that case, would it be appropriate for me to fork the project to develop a custom version with these gestures? I’ll ensure compliance with the project’s license and acknowledge the original work.
Looking forward to your guidance! 🙌
Hi @hf-xz! Thank you for the explanation. I believe feature 1 makes sense for this project, as it aligns with the original goal of moving and resizing a window without dragging the border or title bar.
The other features don't seem to fit this app. I prefer to keep it focused on doing one thing well.
If you're still interested in contributing, I propose one of the following options:
- Develop feature 1 for integration into this project. This would require some refactoring of the UI, as it is already quite crowded. It might be better to create a separate tab for trackpad navigation, or perhaps one for settings, one for shortcuts (including trackpad), and one for information.
- Develop features 1, 2, 3, and 4 for integration into this project. While I don't think I want this, you can still consider how they might fit nicely and submit a PR.
- Develop features 1, 2, 3, and 4 on a fork. Feel free to do this; it's MIT licensed! :)
Thanks @pablopunk! I'll try implementing feature 1 for now, let's just do that first. 😃
First of all, love the app. :)
There is already in MacOs natively the setting to use "three finger drag" when you are on title bar of a window to move it, no key press. I always wanted to use the "three finger drag" wherever the mouse is over the whole window not only the title. Seems to be a more native approach to moving windows with no key presses necessary. Maybe making the app settings to accept gestures and/or keys as input when setting the shortcuts. Like this users could have more freedom for moving windows a key press + three finger drag or only three finger drag etc...
First of all, love the app. :)
There is already in MacOs natively the setting to use "three finger drag" when you are on title bar of a window to move it, no key press. I always wanted to use the "three finger drag" wherever the mouse is over the whole window not only the title. Seems to be a more native approach to moving windows with no key presses necessary. Maybe making the app settings to accept gestures and/or keys as input when setting the shortcuts. Like this users could have more freedom for moving windows a key press + three finger drag or only three finger drag etc...
I've managed to get this feature working with BetterTouchTool nicely for now but I'd also really love this feature in Swift Shift instead to simplify things!