ichelash Posted Friday at 11:42 AM Share Posted Friday at 11:42 AM (edited) Hello everyone, i made an app called LaunchBack..which bring back Launchpad in Tahoe and beyond..it should also work in M Series macs..(NOT tested) App Link: https://github.com/vbored/Launchback @Max.1974 you should test this for us in the M series macs/golden gate.. Kindly. Spoiler Edited Friday at 04:27 PM by ichelash 3 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/ Share on other sites More sharing options...
miliuco Posted Friday at 12:00 PM Share Posted Friday at 12:00 PM @ichelash I can tell you that it works on a M4. A bit glitchy, slow slides between pages, sometimes an icon overlaps another one when moving pages, but it runs. 4 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851817 Share on other sites More sharing options...
ichelash Posted Friday at 12:08 PM Author Share Posted Friday at 12:08 PM 7 minutes ago, miliuco said: @ichelash I can tell you that it works on a M4. A bit glitchy, slow slides between pages, sometimes an icon overlaps another one when moving pages, but it runs. Thanks for the feedback...🫡..will work on those issues. 2 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851818 Share on other sites More sharing options...
MakAsrock Posted Friday at 01:05 PM Share Posted Friday at 01:05 PM 1 hour ago, ichelash said: Hello everyone, i made an app called LaunchBack..which bring back Launchpad in Tahoe and beyond..it should also work in M Series macs..(NOT tested) App Link: https://github.com/vbored/Launchback @Max.1974 you should test this for us in the M series macs/golden gate.. Kindly. Looks like the real thing, only it’s a pity there’s no scroll wheel (middle button)! But still, respect! 👍 4 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851820 Share on other sites More sharing options...
ichelash Posted Friday at 01:12 PM Author Share Posted Friday at 01:12 PM (edited) 11 minutes ago, MakAsrock said: Looks like the real thing, only it’s a pity there’s no scroll wheel (middle button)! But still, respect! 👍 Thanks man..still work in progress..i just want to old launchpad back 🤣..the scroll wheel is there..working fixing noted bugs.. This? \ Edited Friday at 01:17 PM by ichelash 3 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851821 Share on other sites More sharing options...
ichelash Posted Friday at 02:12 PM Author Share Posted Friday at 02:12 PM 2 hours ago, miliuco said: @ichelash I can tell you that it works on a M4. A bit glitchy, slow slides between pages, sometimes an icon overlaps another one when moving pages, but it runs. Try this release: https://github.com/vbored/Launchback/releases/tag/Beta 3 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851822 Share on other sites More sharing options...
Max.1974 Posted yesterday at 04:28 AM Share Posted yesterday at 04:28 AM Hi @ichelash my friend. I Will test today and post results soon 👍🏻👊🏻🤩 2 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851829 Share on other sites More sharing options...
Max.1974 Posted 7 hours ago Share Posted 7 hours ago @ichelash Hello, my friend! How are you all doing? I really liked the app—congratulations on your initiative, and thank you for creating it. I'd like to mention that when using Apple's Magic Mouse, the horizontal swipe gesture to switch from one window to another is slow to respond. Thank you very much!! 2 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851849 Share on other sites More sharing options...
Max.1974 Posted 7 hours ago Share Posted 7 hours ago @ichelash My friend, I made a few changes, and now the Magic Mouse scrolling works perfectly. I’m sharing the project with you—I uploaded it to MediaFire. I’m not very good at creating forks, sorry about that. Here is the link to the modified project so you can improve it however you see fit. Thank you for the app! https://www.mediafire.com/file/krhzwm0o9j7xfdi/Launchback-main.zip/file # # # Change Report — LaunchBack Date: 07/12/2026 Requested by: User Executed by: GitHub Copilot (Claude Sonnet 4.6) 1. GridView.swift — Magic Mouse Lag Problem: The Magic Mouse sends scroll events with a momentum phase (inertia after lifting the finger). The native `ScrollView` continued processing those events even after snapping to the target page, causing visible drift/lag during page transitions. Fix: Added the `ScrollWheelPager` struct and integrated it into the `ScrollView`'s `.background` (in a `ZStack` alongside the existing `MouseDragPager`). How it works: - Intercepts `.scrollWheel` events via `NSEvent.addLocalMonitorForEvents` - Accumulates `scrollingDeltaX` during the real gesture phase (`.changed`) - When the delta crosses 30pt, changes the page programmatically (once per gesture) - Consumes all momentum-phase events (`event.momentumPhase != []`) by returning `nil` — the `ScrollView` never receives the deceleration ticks - Normalizes the delta for Magic Mouse 1 (`hasPreciseScrollingDeltas == false`), which reports in "lines" rather than pixels Files changed: GridView.swift 2. AppQueryEngine.swift — Swift Concurrency Errors Problem (3 build errors): - `Call to main actor-isolated instance method 'refresh(query:into:)' in a synchronous nonisolated context` - `Capture of 'query' with non-Sendable type 'NSMetadataQuery' in a '@Sendable' closure` The `NotificationCenter.addObserver` and `Timer.scheduledTimer` closures are `@Sendable`, but: 1. Captured the local variable `query: NSMetadataQuery` (a non-Sendable type) 2. Called the `@MainActor`-isolated method `refresh(query:into:)` from a non-isolated context Fix: All three occurrences replaced with `MainActor.assumeIsolated { }` — safe because `queue: .main` and the Timer both guarantee execution on the main thread. Inside the block, `self.query` (stored property) is read instead of capturing the local variable, eliminating the Sendable issue. Files changed: AppQueryEngine.swift 3. LaunchpadOverlayWindow.swift — Swift Concurrency Errors Problem (3 build errors): - `Main actor-isolated property 'hostingView' can not be referenced/mutated from a Sendable closure` - `Main actor-isolated property 'onRequestDismiss' can not be mutated from a Sendable closure` The `completionHandler` of `NSAnimationContext.runAnimationGroup` is `@Sendable`, but was mutating `@MainActor`-isolated properties (`hostingView`, `onRequestDismiss`). Fix: Completion handler body wrapped in `MainActor.assumeIsolated { }` — safe because AppKit animation completion handlers always execute on the main thread. Files changed: LaunchpadOverlayWindow.swift 4. make_app_bundle.sh — Binary Path Problem: The script expected the universal binary at `.build/apple/Products/Release/LaunchBack`, but the Swift toolchain on this system outputs to LaunchBack. Fix: Replaced the hardcoded path check with a sequential probe that tries both `.build/apple/` and out — compatible with both toolchain versions. Files changed: make_app_bundle.sh 5. Pending Warning (not changed) `Sources/LaunchBack/WallpaperBackground.swift:234` — `CGWindowListCreateImage` deprecated in macOS 14. This is not a build error (warning only). The correct replacement is `ScreenCaptureKit` (async API), which would require significant refactoring of the existing synchronous call chain. A dedicated future migration is recommended. Final result: Build successful ✅ — `LaunchBack.app` Universal (arm64 + x86_64), ad-hoc signed, with icon. 4 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851850 Share on other sites More sharing options...
miliuco Posted 5 hours ago Share Posted 5 hours ago Sorry, I'm busy with different things, not tried yet. 1 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851853 Share on other sites More sharing options...
Max.1974 Posted 3 hours ago Share Posted 3 hours ago The app is already LaunchBack.dmg.zip 1 Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851857 Share on other sites More sharing options...
ichelash Posted 1 hour ago Author Share Posted 1 hour ago 5 hours ago, Max.1974 said: @ichelash My friend, I made a few changes, and now the Magic Mouse scrolling works perfectly. I’m sharing the project with you—I uploaded it to MediaFire. I’m not very good at creating forks, sorry about that. Here is the link to the modified project so you can improve it however you see fit. Thank you for the app! https://www.mediafire.com/file/krhzwm0o9j7xfdi/Launchback-main.zip/file # # # Change Report — LaunchBack Date: 07/12/2026 Requested by: User Executed by: GitHub Copilot (Claude Sonnet 4.6) 1. GridView.swift — Magic Mouse Lag Problem: The Magic Mouse sends scroll events with a momentum phase (inertia after lifting the finger). The native `ScrollView` continued processing those events even after snapping to the target page, causing visible drift/lag during page transitions. Fix: Added the `ScrollWheelPager` struct and integrated it into the `ScrollView`'s `.background` (in a `ZStack` alongside the existing `MouseDragPager`). How it works: - Intercepts `.scrollWheel` events via `NSEvent.addLocalMonitorForEvents` - Accumulates `scrollingDeltaX` during the real gesture phase (`.changed`) - When the delta crosses 30pt, changes the page programmatically (once per gesture) - Consumes all momentum-phase events (`event.momentumPhase != []`) by returning `nil` — the `ScrollView` never receives the deceleration ticks - Normalizes the delta for Magic Mouse 1 (`hasPreciseScrollingDeltas == false`), which reports in "lines" rather than pixels Files changed: GridView.swift 2. AppQueryEngine.swift — Swift Concurrency Errors Problem (3 build errors): - `Call to main actor-isolated instance method 'refresh(query:into:)' in a synchronous nonisolated context` - `Capture of 'query' with non-Sendable type 'NSMetadataQuery' in a '@Sendable' closure` The `NotificationCenter.addObserver` and `Timer.scheduledTimer` closures are `@Sendable`, but: 1. Captured the local variable `query: NSMetadataQuery` (a non-Sendable type) 2. Called the `@MainActor`-isolated method `refresh(query:into:)` from a non-isolated context Fix: All three occurrences replaced with `MainActor.assumeIsolated { }` — safe because `queue: .main` and the Timer both guarantee execution on the main thread. Inside the block, `self.query` (stored property) is read instead of capturing the local variable, eliminating the Sendable issue. Files changed: AppQueryEngine.swift 3. LaunchpadOverlayWindow.swift — Swift Concurrency Errors Problem (3 build errors): - `Main actor-isolated property 'hostingView' can not be referenced/mutated from a Sendable closure` - `Main actor-isolated property 'onRequestDismiss' can not be mutated from a Sendable closure` The `completionHandler` of `NSAnimationContext.runAnimationGroup` is `@Sendable`, but was mutating `@MainActor`-isolated properties (`hostingView`, `onRequestDismiss`). Fix: Completion handler body wrapped in `MainActor.assumeIsolated { }` — safe because AppKit animation completion handlers always execute on the main thread. Files changed: LaunchpadOverlayWindow.swift 4. make_app_bundle.sh — Binary Path Problem: The script expected the universal binary at `.build/apple/Products/Release/LaunchBack`, but the Swift toolchain on this system outputs to LaunchBack. Fix: Replaced the hardcoded path check with a sequential probe that tries both `.build/apple/` and out — compatible with both toolchain versions. Files changed: make_app_bundle.sh 5. Pending Warning (not changed) `Sources/LaunchBack/WallpaperBackground.swift:234` — `CGWindowListCreateImage` deprecated in macOS 14. This is not a build error (warning only). The correct replacement is `ScreenCaptureKit` (async API), which would require significant refactoring of the existing synchronous call chain. A dedicated future migration is recommended. Final result: Build successful ✅ — `LaunchBack.app` Universal (arm64 + x86_64), ad-hoc signed, with icon. No worries..let me check it. Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851858 Share on other sites More sharing options...
miliuco Posted 1 hour ago Share Posted 1 hour ago @ichelash Latest version, much better. Smooth sliding between pages, faster than the first version. @Max.1974 works fine too, I like the horizontal scroll bar at the bottom in this version. A way to quit the app without needing Activity Monitor would be welcome. Link to comment https://www.insanelymac.com/forum/topic/362966-launchback-app/#findComment-2851859 Share on other sites More sharing options...
Recommended Posts