A lighter touch. A better-placed window.
Native macOS window management with trackpad gestures and ⌘ + mouse movement.
English · 简体中文
Download · Gestures · Build · Report an issue
slide places windows in halves, quarters, or the full usable desktop. Start a trackpad gesture on a title bar or Dock icon, or hold Command (⌘), move your mouse, and release ⌘. A preview shows the action before you commit.
- Seven layouts: left/right halves, four corners, and maximize without entering macOS full screen.
- Close with a gesture: pinch inward on a window to close it; pinch on a running Dock app to request a normal quit, preserving its save prompts.
- Ordinary mouse support: hold ⌘ and move the pointer. Downward movement has its own short, adjustable close/quit distance.
- Dock actions: arrange the app's most recent standard window, restore minimized windows, or quit an app even if it has no windows.
- Native preferences: live English / Simplified Chinese switching, system/light/dark appearance, whole-row navigation, and keyboard-accessible selectors.
- Make it yours: app exceptions, spacing, sensitivity, previews, haptics, login launch, and per-gesture switches.
- Practice first: the built-in practice area demonstrates gestures without moving or closing other apps.
- Local by design: no account, analytics, or network requests in the app. No third-party runtime dependencies.
Requires macOS 13 Ventura or later. One universal download supports Apple Silicon and Intel.
- Download slide-macOS.dmg from the latest release.
- Open the DMG and drag slide.app into Applications. Open the installed copy, then eject the DMG.
- Grant Accessibility access in System Settings → Privacy & Security. On newer macOS versions, the pane may be called Device Control & Data Access.
- If slide reports that gesture listening cannot start, allow Input Monitoring, then restart slide.
- Try the practice area, then start with a title-bar swipe or ⌘ + mouse movement.
A ZIP download is also available. Closing the settings window keeps slide in the menu bar. Quit it from the menu bar when you want to stop the service.
Official Release downloads are Developer ID signed and Apple notarized. The app and DMG have stapled notarization tickets, and the ZIP contains the same stapled app.
Release assets include SHA256SUMS.txt. To check downloaded files in the same folder:
shasum -a 256 -c SHA256SUMS.txtPlace the pointer on a window's title bar, then swipe with two fingers. The default activation mode also lets you hold Option (⌥) over any part of the target window. Dock gestures do not require Option.
| Gesture | Window | Running app's Dock icon |
|---|---|---|
| ← / → | Left / right half | Same layout for its most recent standard window |
| ↖ / ↗ | Top-left / top-right quarter | Same layout |
| ↙ / ↘ | Bottom-left / bottom-right quarter | Same layout |
| ↑ | Fill the usable desktop | Same layout |
| Pinch inward | Close this window | Request normal app quit by default |
| ↓ | Unassigned | Unassigned |
Maximize respects the menu bar and Dock; it does not enter macOS full screen. In Dock Gestures, you can change pinch from quitting the app to closing its most recent window. Save confirmation belongs to the target app; slide never force-quits it.
Release your fingers to commit. Press Escape to cancel, or reverse a pinch back below its threshold. Inertia does not repeat an action.
- Point at a window or a running app's Dock icon.
- Hold ⌘ and move the pointer—no click, drag, or wheel scrolling.
- Release ⌘ to perform the previewed action.
The seven layout directions match the trackpad. Move down to close a window or, from the Dock, quit the app. The initial target stays fixed even after the pointer leaves its title bar or Dock icon.
The default close/quit distance is 12 pt, adjustable from 6–60 pt. Layout directions default to 110 pt. At a screen edge, relative mouse movement continues to count, including downward movement from a bottom Dock.
Return near the starting point, press Escape, press another key/modifier, click, or scroll to cancel. Ordinary Command shortcuts continue to work. Mouse and trackpad gestures can be enabled independently.
| Area | Options |
|---|---|
| Window Gestures | Enable individual gestures, preview layouts, open practice |
| Dock Gestures | Enable Dock actions; choose quit app or close recent window |
| Mouse Gestures | Enable ⌘ + movement; set layout and close/quit distances |
| Behavior | Activation area, spacing, swipe/pinch sensitivity, title-bar height, preview, haptics, reverse direction |
| App Exceptions | Exclude selected apps from gesture handling |
| General | Follow system / English / 简体中文, appearance, launch at login, permission status |
Language follows the system's preferred language order by default; unsupported languages fall back to English. Changes take effect immediately. The menu bar can pause gestures and undo the most recent layout. Closing windows and quitting apps cannot be undone by slide.
- Permission enabled but not recognized: click Check Again, then Restart slide. General shows the actual running app path. If upgrading from an old ad-hoc build, remove the old entry from the system privacy list and add
/Applications/slide.appagain. - Do not run duplicate copies: use the installed Applications copy, not an app inside Downloads, a mounted DMG, a build cache, or a network folder.
- Pinch not detected: enable the system trackpad setting Scroll & Zoom → Zoom in or out.
- Custom title bars: try holding Option over the window or using the mouse mode. Text-input areas retain their normal gestures.
- Some windows will not fit: apps can enforce minimum or fixed sizes. Native full-screen windows, system dialogs, and slide's own settings are skipped for layout operations.
- Multiple displays: layouts use the display with the largest overlap with the window. Moving windows between displays is not implemented.
- Dock scope: only running application icons are handled. Trash, folders, files, unlaunched apps, and standalone minimized-window thumbnails are ignored. Layout gestures do not launch apps or create windows.
- System compatibility: recognition uses precise scroll and magnify events, not raw finger data. Global pinch decoding relies on Quartz event type
29, which is not a publicCGEventTypecase. macOS changes and third-party input tools may affect it; see architecture notes (Chinese).
slide is distributed directly with Developer ID signing, rather than through the Mac App Store. It requires access to other apps' windows. See the privacy description for what those permissions do.
Use a Mac with Xcode or Command Line Tools containing the macOS SDK, Swift 5.9+, and Python 3 for the localization checker.
git clone https://github.com/skingko/Slide.git
cd Slide
bash scripts/test.sh
UNIVERSAL=1 bash scripts/build-app.sh
open dist/slide.appThe build script uses the single available Developer ID Application identity. If several are installed, set SIGNING_IDENTITY to the intended identity name or SHA-1. For disposable local testing without a certificate:
ALLOW_ADHOC=1 bash scripts/build-app.shAd-hoc builds are not distribution builds and can require renewed permissions after changes. Omit UNIVERSAL=1 to build only for the current Mac. Outputs go to dist/; build intermediates default to ~/Library/Caches/slide/Build and can be moved with SLIDE_BUILD_CACHE.
Open Package.swift in Xcode to browse the project. Use the packaged .app for real global-gesture testing. The legacy bundle ID com.swichmac.Swich is intentionally retained to preserve permission and preference continuity after the rename from Swich.
| Path | Purpose |
|---|---|
Sources/SlideCore |
Gesture state machines, actions, geometry, localization |
Sources/SlideApp |
SwiftUI settings, AppKit integration, event tap, Accessibility window/Dock control |
Tests/SlideCoreTests |
Direction, threshold, cancellation, Dock targeting, geometry, and language tests |
Resources |
App metadata |
scripts |
Tests, app/icon build, DMG packaging, notarization |
docs |
Screenshots, architecture, privacy, release instructions, manual acceptance checks |
bash scripts/test.sh checks both 217-entry language catalogs and runs the core tests. Permissions, physical trackpads/mice, app-specific behavior, and login launch also need manual checks. Distribution instructions are in Releasing.
Open an issue in English or Chinese. Include the macOS version, slide version, device type, target app, and steps to reproduce. Please omit passwords, personal documents, and other private information from logs or screenshots.
Interaction inspiration: Swish. slide is an independent implementation and is not affiliated with Swish.
MIT © 2026 slide contributors.
