English | 简体中文
Launch and switch macOS apps with keyboard shortcuts that follow your Dock.
A menu bar utility for Apple Silicon Macs, built as a replacement for Snap. Pinned Dock apps get Option+1…Option+0; other apps can have custom shortcuts. Press a shortcut to launch or switch to its app, and press it again to hide the app.
- Dock shortcuts: the first ten pinned Dock apps, in Dock order. Finder, folders, and recent apps are skipped.
- Custom shortcuts: record a key combination for any app. These win over Dock shortcuts that use the same keys.
- Per-app switches: turn a shortcut off without losing it.
- Import: bring shortcuts over from Snap or Apptivate, with a preview first.
- English and Simplified Chinese: change the language in Settings → App language.
Requires an Apple Silicon Mac running macOS 13 or later, and Command Line Tools with Swift 6.1+ and the macOS 26 SDK.
./Scripts/build-app.sh # release build → dist/SnapDock.app
./Scripts/package-release.sh # also builds a disk image → dist/SnapDock-<version>.dmgCopy dist/SnapDock.app to Applications to install. The build compiles against the macOS 26 SDK to keep the current look; set SNAPDOCK_SDK to use another SDK. The app is ad-hoc signed, not notarized.
Download SnapDock-<version>.dmg from Releases, or build it yourself, and drag SnapDock to Applications. The app is not notarized, so macOS blocks the first launch. Click Open Anyway in System Settings → Privacy & Security, or run:
xattr -dr com.apple.quarantine /Applications/SnapDock.appSettings open on first launch. SnapDock runs in the menu bar with no Dock icon. Closing the settings window keeps it running; choose Settings… from the menu bar icon, or open the app again, to get back.
- Pin the apps you use most to the Dock and drag them into the order you want.
- Press
Option+1for the first pinned app,Option+2for the second, and so on.Option+0is the tenth. Finder, folders, and recent apps are skipped and don't take a number. - To use other modifiers, tick any of Control, Option, Shift, and Command. At least one stays on.
The list follows Dock changes on its own; click Refresh if it looks stale. Each row shows the shortcut and its status. Use the switch to turn one off and Open to try it.
- Click Add…, then Choose Application…, and pick an app.
- Click the Shortcut field and press a key combination with at least one of ⌘, ⌥, ⌃, or ⇧.
- Click Save.
Manual shortcuts win over Dock shortcuts that use the same keys. One app can have several manual shortcuts. Use Edit… and Remove to change them, or the switch to turn one off and keep it.
- App not running: launches it.
- App in the background: switches to it and opens a window if it has none.
- App already in front: hides it, if Press a shortcut again to hide the frontmost app is on (the default).
The menu bar icon lists every shortcut with its status; click an entry to switch to that app. It also has Add Manual Shortcut…, Import from Apptivate…, and Quit SnapDock.
- App language: Follow System, 简体中文, or English.
- Press a shortcut again to hide the frontmost app: see above.
- Show SnapDock in the menu bar: when off, open the app again to reach settings.
- Launch SnapDock at login: macOS may ask you to approve it in System Settings → General → Login Items.
- Snap: Settings → Import from Snap… reads Snap's preferences without changing Snap or the Dock. The preview lists the shortcuts and the settings that will change (current → imported). Existing manual shortcuts are kept, conflicts are skipped, and launch at login is left alone. A backup is saved first; Restore Pre-import Configuration… undoes the import. Quit Snap before using the same shortcuts in SnapDock.
- Apptivate: Manual → Import from Apptivate… lets you pick which shortcuts to bring over. Apps already in SnapDock and conflicting keys are skipped. Key sequences keep only their first combination, and files or scripts are not supported.
- A shortcut does nothing: check that it is switched on and look at its status in settings. Snap or a macOS shortcut may be using the same keys.
- Dock order is out of date: click Refresh in Automatic.
- Launch at login is pending: approve it in System Settings → General → Login Items.
Stream diagnostic logs with:
/usr/bin/log stream --style compact --predicate 'subsystem == "local.snapdock.app"'
