What's New in 2.2.0
This release modernizes Brooklyn for modern macOS (Sonoma, Sequoia, and later), introducing native Apple Silicon (arm64) support alongside Intel (x86_64) in a Universal 2 binary, while resolving major issues with screensaver termination, video player resource deallocation, and multi-instance memory leaks.
Highlights & Fixes:
- Universal 2 Binary: Full native execution on Apple Silicon (
arm64) Macs without needing Rosetta 2, while retaining full compatibility with Intel (x86_64) Macs. - macOS Sonoma+ Exit Lifecycle: Listens to
com.apple.screensaver.willstopto cleanly terminate the out-of-processlegacyScreenSaver.appexextension when the screensaver stops, eliminating zombie processes and high background CPU usage. - Hardware Decoder & Player Resource Release: Fixed an issue where
stopAnimation()failed to releaseAVPlayerItems andvideoLayer.player, allowing the system'sVTDecoderXPCServicehardware decoder to terminate cleanly on exit. - Prevent Unbounded Loop Queue Growth: Scoped
AVPlayerItemDidPlayToEndTimenotifications to prevent cross-insertion of duplicated queue items between multiple display/preview instances. - Reduced Overhead: Removed the unused 30fps empty timer loop (video playback is fully handled by AVFoundation).
- Swift 6 & Modern Build Settings: Fixed Swift 6 syntax warnings and unbundled obsolete 2020 Swift runtime dylibs, linking against macOS built-in
/usr/lib/swift.
Installation:
- Download
Brooklyn.saver.zipbelow and unzip it. - Double-click
Brooklyn.saverto install into your Screen Savers folder (~/Library/Screen Savers). - If macOS displays a developer verification prompt:
- Open System Settings -> Privacy & Security, scroll down and click Open Anyway; or
- Run in Terminal:
xattr -cr ~/Library/Screen\ Savers/Brooklyn.saver