Skip to content

2.2.0 - Universal & Modern macOS Compatibility

Latest

Choose a tag to compare

@iF2007 iF2007 released this 11 Sep 04:47
· 2 commits to master since this release

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.willstop to cleanly terminate the out-of-process legacyScreenSaver.appex extension when the screensaver stops, eliminating zombie processes and high background CPU usage.
  • Hardware Decoder & Player Resource Release: Fixed an issue where stopAnimation() failed to release AVPlayerItems and videoLayer.player, allowing the system's VTDecoderXPCService hardware decoder to terminate cleanly on exit.
  • Prevent Unbounded Loop Queue Growth: Scoped AVPlayerItemDidPlayToEndTime notifications 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:

  1. Download Brooklyn.saver.zip below and unzip it.
  2. Double-click Brooklyn.saver to install into your Screen Savers folder (~/Library/Screen Savers).
  3. 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