Launchy is a macOS SwiftUI application that recreates the familiar Launchpad experience with enhanced customization. It lets you browse, search, and organize installed apps into pages and folders with smooth paging, wiggle mode editing, and persistent layout storage.
- App Browsing – grid of installed apps with search, paging, and keyboard navigation.
- Wiggle Mode – reorder apps, create folders, and batch-move selections with multi-select tools.
- Folders – drag-and-drop or tap to organize multiple apps into named collections.
- App Launching – click any app tile to open it immediately and close the launcher.
- Settings – tweak grid dimensions, icon scaling, and other layout preferences.
- Persistence – local storage keeps your custom layout intact between sessions.
| Shortcut | Action |
|---|---|
⌘E |
Toggle wiggle (edit) mode |
⌘, |
Open settings |
← / → |
Navigate between pages |
Home / End |
Jump to first / last page |
Page Up / Page Down |
Navigate between pages |
Escape |
Layered dismiss: close folder → close settings → clear search → exit edit mode → hide launcher |
| Trackpad swipe / scroll | Navigate between pages (sensitivity configurable in settings) |
F4 |
Global hotkey to toggle launcher visibility |
graph LR
A[InstalledApplicationsProvider] --> B[LaunchyDataStore]
B --> C[LaunchyViewModel]
C --> D[DragCoordinator]
C --> E[LaunchyRootView]
C --> L[LayoutUndoManager]
E --> F[LaunchyPagedGridView]
E --> G[FolderContentView]
F --> H[LaunchyGridPageView]
H --> I[LaunchyItemView]
J[GridSettingsStore] --> C
J --> E
K[GlobalHotkeyService] --> M[AppDelegate]
N[TrackpadGestureService] --> M
O[MenuBarService] --> M
P[NotificationBadgeProvider] --> I
Q[ApplicationIconProvider] --> I
R[ICloudSyncService] --> C
| Layer | Responsibility |
|---|---|
| Models | AppIcon, LaunchyItem, LaunchyFolder, GridSettings — pure value types (Codable, Sendable) |
| Services | InstalledApplicationsProvider discovers apps; LaunchyDataStore persists layout; GridSettingsStore persists preferences; GlobalHotkeyService / TrackpadGestureService handle activation; MenuBarService provides status item; NotificationBadgeProvider polls app badges; ApplicationIconProvider caches icons; ICloudSyncService syncs layout; LayoutUndoManager manages undo/redo |
| ViewModels | LaunchyViewModel owns the item list, paging, editing, and folder logic; DragCoordinator encapsulates drag-and-drop state and stacking |
| Views | SwiftUI views for the grid, folder overlay, settings panel, and search field |
- macOS 14.0 or newer
- Xcode 16+ with the Swift 6.2 toolchain (required for the Swift 6.2 package manifest)
Clone the repository and build with Swift Package Manager:
git clone https://github.com/lbenicio/macos-launchpad-tahoe-v1.git
cd macos-launchpad-tahoe-v1
swift buildRun the app from Xcode or the command line:
swift run Launchy- Use
swift buildbefore submitting changes to ensure everything still compiles. - Launch the app and press the edit button (wiggle mode) to manage icons and folders.
- Dependabot is configured for Swift and GitHub Actions updates; expect PRs prefixed with
chore(deps).
- Fork the repo and create a feature branch.
- Follow the pull request template (
.github/pull_request_template.md). - Include relevant issue links and screenshots for UI changes.
- Ensure new functionality has appropriate tests or manual verification steps.
This project is licensed under the GPLv3 License. See LICENSE.txt for details.