Phosphene — это утилита для macOS Tahoe, которая превращает любые ваши видеофайлы в обои рабочего стола и экрана блокировки. Она работает как приложение в строке меню плюс расширение для обоев, встроенное прямо в системный выбор System Settings → Wallpaper. Там ваши ролики появляются рядом с Apple Aerials.
В основе лежит приватный фреймворк Apple WallpaperExtensionKit — тот самый, который используют сами Aerials. Phosphene загружает его через dlopen и общается с XPC-типами через Mirror-based runtime introspection. Всё это живёт вне основного процесса, переживает закрытие приложения и корректно реагирует на блокировку, бездействие и сон. Но Apple может в любой момент сломать такую интеграцию в новом релизе — проект привязан к macOS 26 (Tahoe).
Фич много. Видео импортируются в MP4, MOV или любом формате, который читает AVFoundation. Цикл работает без заиканий — Phosphene смещает PTS/DTS на стыках, не сбрасывая рендерер. Можно ставить разные обои на каждый дисплей и рабочий стол — macOS запоминает настройки. PlaybackPolicy динамически снижает нагрузку или ставит видео на паузу в зависимости от температуры, заряда батареи, режима игры и состояния экрана (активен, заблокирован, в простое). Когда включается Only on Lock Screen, переходы на замок и обратно сглаживаются кубической кривой — как у родных Aerials. Если все окна перекрывают рабочий стол, Phosphene приостанавливает рендеринг до появления свободного места. Ещё можно предварительно сгенерировать облегчённые варианты видео (ниже разрешение или FPS), и плеер сам переключится на самый дешёвый из возможных по условиям.
Из приложения в строке меню управляется библиотека, пауза, выбор дисплея и автозапуск. На бэкенде всё делится на две части: основное приложение (SwiftUI, управление библиотекой и транскодирование) и расширение, которое живёт внутри системного WallpaperAgent. Расширение рендерит кадры через AVSampleBufferDisplayLayer в удалённый CAContext. Там же живёт PlaybackPolicy — единый центр решений о воспроизведении. А VideoRenderer вручную гоняет AVAssetReader и прелоадит следующий цикл, чтобы избежать разрывов.
Для сборки нужны Xcode 17+, Swift 6 и Apple Silicon. Код доступен на GitHub под лицензией MIT. Проект раньше был коммерческим, но автор (@kageroumado) выложил его открыто — рынок «видео-обоев для macOS» оказался слишком тесным.