❌

Normal view

FruitMenu Redux

25 September 2026 at 20:26

Rosyna Keller:

FruitMenu Redux revives a utility (FruitMenu) that brings lost Mac OS Classic features to Mac OS X. Specifically, it restores the fully customizable Apple menu.

It’s no longer a haxie that works by patching the operating system. Now, it’s a regular app that hooks into other apps (e.g. to switch to a particular window) using the accessibility APIs.

The first step was to implement every FruitMenu feature that’s still possible in the current macOS security environment. That immediately ruled out features requiring patching menus (sigh, I really miss patching menus) and features that require privileges now gated behind restricted entitlements. I also added support for viewing and executing Shortcuts.

[…]

Additionally, you can set a hotkey to any item you add to FruitMenu Redux!

[…]

Because SwiftUI doesn’t support dynamic menus, I had to rewrite all the menu code to use AppKit’s NSStatusItem and NSMenu as NSMenu is now a first-class citizen on macOS and fully supports dynamic submenu building. This means that FMR doesn’t even try to build the contents of a folder under you actually attempt to show the contents of the folder. Not only is this significantly faster, but it also uses significantly less memory.

FruitMenu is now available (Mastodon):

A built-in visual editor displays your menu on the left and a library of over 30 item types on the right. You drag items from one to the other (almost like Font/DA Mover, the best UX ever created). The library includes files and folders, submenus, Running Applications (and you can enable an option to show open windows and tabs), Mounted Volumes, Recent Items, Force Quit, Sleep, Restart, Shut Down, Shortcuts, Software Update, separators, System Settings panes, and more!

Anything you put in the FruitMenu Redux Items folder in your Library also appears in Files, folders, and aliases.

$10 (with $7 intro price), not in the Mac App Store because of accessibility.

Rosyna Keller:

OMG, Core Transferable, why do I have to declare a public UTI in my info.plist for internally dragging from one list in my app to another list in my app?! It’ll never be decoded by another app!

This was the fix to a bug I reported. With the new SwiftUI drag API, you apparently have to declare private internal drag types in your plist (on Tahoe, but not on Golden Gate).

Xounds, which plays sounds in response to user interface actions, is also back. Unlike FruitMenu, this one never appealed to me—I actually prefer to have the audio muted most of the time. I do find it interesting that it supports the old sound set files from Mac OS 8. Apple dropped the APIs for playing these way back during the 64-bit transition, but Xounds knows how to extract and play the audio.

Previously:

Sparrow Wallet Lawsuit

27 July 2026 at 21:11

Joe Rossignol (PDF):

The complaint alleges that Apple violated California’s Consumers Legal Remedies Act and other laws by failing to adequately review and monitor apps distributed through the App Store, despite marketing it as “a safe and trusted place to discover and download apps.” Due to these assurances in Apple’s marketing, the complaint said the plaintiffs trusted that a Sparrow Wallet app they downloaded from the App Store on iOS was legitimate, when in reality it was a fraudulent spoof designed to steal Bitcoin from users.

Sparrow Wallet is only available on Windows, macOS, and Linux. The popular Bitcoin wallet is not available on iOS, but scammers have released fake lookalike apps in the App Store that can trick users into giving up control of their funds.

[…]

Even when victims reported fraud, the lawsuit alleges that Apple often took little to no action, and it says other fake Sparrow apps remain in the App Store.

Sparrow Wallet developer Craig Raw has publicly addressed Apple’s slow response to multiple fake versions of his app appearing in the App Store. In a January 2024 social media post, for example, he said “there is still a scam ‘Sparrow Wallet’ app on the @Apple App Store, despite myself and others having reported it weeks ago.”

Craig Raw:

My attempt to protect users from scam apps on the @AppStore has gotten my Apple Developer account flagged for termination - ironically, for “dishonest activity”.

[…]

I’m the developer of the real Sparrow Wallet, a desktop app, and I hold the registered US trademarks for the name and logo. I have publicly warned @Apple and the community about these fake apps from early 2024, but they keep appearing.

The app @Apple flagged was a placeholder that was never published. Its only purpose was to warn users that Sparrow is desktop-only and that other “Sparrow” apps aren’t mine. This approach may have been misguided, but there was nothing dishonest about it.

Joe Rossignol:

In response to our request for comment, Apple said it has taken swift action to remove any apps impersonating Sparrow Wallet[…] Apple says it takes immediate action against apps that do not comply with its guidelines.

Previously:

Update (2026-07-28): Sarah Perez:

The complaint targets one of Apple’s longtime competitive arguments: that its tight control over its App Store makes its platform safer than those offered by its rivals. The company has used this claim to push back against deregulation of the app ecosystem, including third-party app stores and sideloading.

“As part of a sustained marketing campaign, Apple has positioned itself, its products and services, as offering a level of security and trustworthiness superior to any competing technology company,” the new filing states. “This includes assurances about the safety of applications distributed through its App Store. By retaining exclusive control over which apps are permitted on Apple devices, Apple has structured its platform to ensure that consumers depend entirely on its promise of safety and reliability,” it reads.

With third-party app stores, there would be an incentive to do better vetting than Apple, and with sideloading it would be clear that the app was not being downloaded from sparrowwallet.com.

Update (2026-07-29): Jeff Johnson:

What struck me about Apple’s response is that it places the burden of curating the App Store on developers and users rather than taking responsibility for it. After all, Apple reviews every version of every app before it can be published to the App Store. If Apple is curating the App Store, then why do scams have to be reported and removed? One wonders how the scams get past Apple review in the first place, and even if Apple review “is not perfect” (a gross euphemism), how the second line of defense, Apple employees patrolling the App Store for scams that the review team missed, also fails. The burden of App Store curation should not fall to me, a lone indie developer.

Apple’s response also ignores that the indie developer did report the scams, multiple times.

Previously:

❌