Swipe three fingers down on the trackpad and the window under your cursor drops into the Dock. That's the whole app.
If that window is full screen, there is nothing to minimise, so Stash shows you the desktop instead — the full-screen window stays full screen, untouched, right where you left it. You can turn this off in the settings if you'd rather the gesture did nothing on full-screen windows.
It lives in the menu bar, has no Dock icon, and works the same whether or not you use Stage Manager — minimised windows land in the Dock either way.
Download the .dmg from the latest release, open it, and drag
Stash onto Applications. That's it.
macOS will ask for Accessibility permission on first launch (System Settings › Privacy & Security › Accessibility). Stash needs it twice over: to read trackpad gestures, and to act on other apps' windows. Nothing works without it.
Click the menu bar icon › Réglages…
- Amplitude — how far you have to swipe before the window drops. A live indicator shows the number of fingers detected and the progress of the current gesture, so you can calibrate it.
- Background windows — when off, only the active app's windows respond.
- Back to desktop on full-screen windows — on by default; turn it off to make the gesture do nothing when the window under the cursor is full screen.
- Launch at login.
- Updates — Stash checks GitHub releases once a day and can install a new version itself.
- A session-wide
CGEventTaplistens to gesture events and reads the rawNSTouchdata, so Stash tracks the three fingers itself instead of relying on macOS's preset gestures. - The Accessibility API finds the window:
AXUIElementCopyElementAtPositionunder the cursor, walk up to theAXWindow, then setAXMinimized. - For a full-screen window, Stash activates the Finder, which is exactly what clicking its Dock icon does: macOS switches to the desktop Space with its usual transition, and the full-screen window is never touched.
Two other routes were tried and dropped: writing the Space directly through
CGSManagedDisplaySetCurrentSpace (a private call) updates the WindowServer's bookkeeping
without redrawing, so desktop windows end up painted on top of the full-screen one; and sending
the Mission Control move one Space left shortcut had no effect at all when posted
programmatically, even with a full Control key press and Accessibility granted. Stash therefore
uses no private APIs.
Written in Swift and SwiftUI, no third-party dependencies. Source comments and the settings UI are in French.
- Going back to the desktop makes the Finder the active app, the same as clicking its Dock icon.
- macOS maps three fingers down to App Exposé by default, which would fire alongside Stash. Turn that one gesture off: System Settings › Trackpad › More Gestures › App Exposé → Off. Leave Mission Control on Swipe Up with Three Fingers — it uses the opposite direction and does not conflict.
- The build is ad-hoc signed. Each rebuild changes its signature, so macOS will ask you to re-approve it under Accessibility.
- The built-in updater downloads the release archive and removes its quarantine flag before swapping the bundle — otherwise Gatekeeper would refuse to launch an ad-hoc signed app that came from the internet. This is the same thing Sparkle and other updaters do. If you'd rather not, turn off automatic updates and install releases by hand.