❌

Reading view

FruitMenu Redux

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:

  •  

Persistent Ads in iOS Settings

Alex Blake (Hacker News):

The β€˜ads’ in question appear in the Settings app in iOS. They can be found near the top of the iPhone’s display and promote several products to the user, including paid-for iCloud+ storage, free trials for services like Apple Music and Apple TV, and the AppleCare+ extended warranty.

Infuriatingly for iOS users, the only way to disable these promos is to either let them expire β€” which in many cases could take weeks or even months, leaving a persistent notification badge on the Settings app in the meantime β€” or pay for the service being offered. There is not always a β€œdismiss” button to shoo them away for good, and when there is, some people have reported that it doesn’t seem to work.

Previously:

  •  
❌