1 Punkte von GN⁺ 2 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Phosphene ist eine Menüleisten-App + Wallpaper-Erweiterung, die Videodateien des Nutzers als Hintergrundbild auf dem macOS-Desktop und Sperrbildschirm abspielt
  • Sie ist in den systemeigenen Hintergrundbild-Auswahldialog integriert, sodass hinzugefügte Videos unter System Settings → Wallpaper zusammen mit den integrierten Apple-Aerials erscheinen
  • Sie basiert auf Apples privatem WallpaperExtensionKit und bietet wie Apple Aerials eine out-of-process-Wiedergabe, Fortbestand nach dem Beenden der App sowie eine Integration in die Lebenszyklen von Sperrbildschirm, Idle-Zustand und Ruhezustand
  • Importiert werden können MP4-, MOV- und andere von AVFoundation lesbare Dateien; die Auswahl von Hintergrundbildern für mehrere Displays und pro Space wird von macOS gespeichert
  • Für gapless looping werden an der Loop-Grenze PTS/DTS versetzt, sodass Frames ohne Flush oder sichtbare Unterbrechung framegenau aneinandergesetzt werden
  • PlaybackPolicy kombiniert Faktoren wie geöffneten Zustand, Akkustand, Batterie-/AC-Betrieb, Game Mode, Anzeigemodus, Benutzerpause und Verdeckungszustand und bestimmt daraus eines von full / reduced / minimal / paused als Wiedergabeverhalten
  • Wenn alle Displays vollständig von Fenstern verdeckt sind, wird das Rendering gestoppt und die Wiedergabe pausiert, bis der Desktop wieder sichtbar ist
  • Optional lassen sich vorab adaptive variants mit niedrigerer Auflösung und geringerer fps erzeugen; der Renderer wechselt dann an jeder Loop-Grenze zur günstigsten Variante, die die aktuelle Policy erfüllt
  • In der Einstellung Only on Lock Screen blendet das Hintergrundbild beim Sperren und Entsperren mit einer kubischen Kurve weich ein und aus, passend zum Verhalten von Apple Aerials
  • Der App-Teil ist eine SwiftUI-Menüleisten-App und verwaltet Videobibliothek, videospezifische Metadaten, HEVC-Optimierung, Einstellungen sowie Darwin-Benachrichtigungen bei Bibliotheksänderungen
  • Der Erweiterungs-Teil läuft innerhalb des systemeigenen WallpaperAgent, lädt zur Laufzeit WallpaperExtensionKit.framework und rendert Frames mit AVSampleBufferDisplayLayer in einen entfernten CAContext
  • Da AVPlayerLayer innerhalb eines entfernten CAContext stillschweigend fehlschlägt, steuert VideoRenderer AVAssetReader und AVSampleBufferDisplayLayer direkt an, um eine monoton steigende Timeline beizubehalten
  • Da es auf WallpaperSnapshotXPC-Swizzling und Mirror-basiertes XPC-Parsing angewiesen ist, können Snapshot- und Request-Verarbeitung brechen, wenn Apple private Typen oder Feldnamen ändert
  • Voraussetzungen sind macOS Tahoe 26.0+, Apple Silicon und Xcode 17+; als Ziel dient arm64-apple-macos26.0 mit aktiviertem Swift 6 Strict Concurrency
  • Die Lizenz ist MIT und weist ausdrücklich darauf hin, dass die Nutzung frei und ohne Gewähr erfolgt

1 Kommentare

 
GN⁺ 2 시간 전
Hacker-News-Kommentare
  • Sehr elegant. Anfangs war ich verwirrt und dachte: „Man kann doch Video-Bildschirmschoner herunterladen, warum also Frames herauskratzen?“ Erst durch die Kommentare habe ich verstanden, dass ich meine eigenen Videos für Desktop und Sperrbildschirm verwenden kann
    Viel besser wäre ein Titel, der den Kern nicht versteckt, sondern sofort klar macht, was man wie tun kann

  • Ich kann schon einigermaßen nachvollziehen, warum Tahoe so viel Kritik einsteckt, aber Video-Hintergründe und Transparenzeffekte haben etwas von Windows Vista, was irgendwie unterhaltsam und nostalgisch ist
    Jetzt ist es wohl Zeit, den Vista-Wasserfall als Hintergrundbild einzustellen und sich wirklich wie 2007 zu fühlen

    • „Windows-Vista-Nostalgie“ zu hören, lässt mich fühlen, als hätte ich schon ziemlich lange gelebt
    • Das größte Problem bei Tahoe ist, dass die Sperrbildschirm-Animation ständig ruckelt und stehen bleibt. Ich nutze ein M3 Pro, und wenn darauf 4K-Videos ohne Frame-Drops laufen, dann sollte auch ein simples Video-Hintergrundbild ordentlich funktionieren; wenn nicht, sollte es meiner Meinung nach gar nicht existieren
    • Weltweit gibt es vermutlich ein paar Dutzend Menschen, die Vista-Nostalgie teilen
    • https://windowswallpaper.miraheze.org/wiki/Windows_Vista
      Ich frage mich, welcher Wasserfall gemeint ist. Mich überrascht auch, dass Vista so viele Hintergrundbilder hatte; ich erinnere mich nur an so etwas wie den standardmäßigen grünen Verlauf und an den Bambuswald, den ich eine Zeit lang benutzt habe
    • Ich vermisse die Zeit um 1998, als man xscreensaver-Hacks als Hintergrund des X-Root-Fensters, also direkt auf dem Desktop, laufen ließ
  • Vielen Dank dafür. Ich habe gerade eine Sammlung von Bildschirmschonern gebaut, und LegacyScreenSaver war einfach zu unbeholfen
    Ich hatte gehofft, dass jemand Apples privates Hintergrundbild-Framework entschlüsselt, und tatsächlich hat es jemand geschafft

    • Soweit ich das sehe, ist das für WallpaperAgent gedacht, und WallpaperAgent führt eine Erweiterung von com.apple.wallpaper auf dem Desktop aus
      Für Bildschirmschoner siehe den anderen Beitrag; dort habe ich ein Beispielprojekt und Dokumentation für eine private Bildschirmschoner-API veröffentlicht, die das umgeht. Apple verwendet beides in seinen eigenen „Aerials“ und hat ein Synchronisierungssystem, das die Position zwischen dem Bildschirmschoner-Player und dem Desktop-Player teilt
    • LegacyScreenSaver verbraucht wirklich sehr viel Speicher
  • Ich finde, Apples bestes Video-Hintergrundbild ist Macintosh. Ich frage mich, wie das funktioniert

    • Ich auch. Bei Teilen dieses Hintergrundbilds hatte ich das Gefühl, dass es nicht einfach nur eine Sammlung von Videodateien ist, sondern prozedural generiert wird, und habe noch einmal hingeschaut, um das zu prüfen
      Es gibt mehrere Stellen, an denen Datum und Uhrzeit bis auf die Sekunde mit der Systemzeit übereinstimmen
  • Wow, das ist wirklich cool. Ich habe es geschafft, das private Bildschirmschoner-.appex-Framework per Reverse Engineering so zum Laufen zu bringen, dass es in Aerial 4 funktioniert, und habe letzte Woche zusammen mit v4 ein Beispielprojekt und Dokumentation für alle veröffentlicht, die es ausprobieren wollen: https://github.com/AerialScreensaver/AppexSaverMinimal
    Ich habe den Wallpaper-appex auf die gleiche Weise ausprobiert. Das Reverse Engineering selbst schien einfach zu sein, aber WallpaperAgent hat das Laden verweigert, deshalb nutze ich im Moment noch den klassischen Trick, mein Fenster und den Videoplayer über dem Hintergrundbild, aber unter den Icons anzuzeigen. Ich werde mir ansehen, was ich übersehen habe

  • Wirklich gut gemacht. Ich bin kürzlich in ein ähnliches Rabbit Hole gefallen, habe den Aerials-Katalog per Reverse Engineering untersucht und herausgefunden, wie Apple das alles verdrahtet; schön zu sehen, dass noch ein anderes Open-Source-Projekt daran arbeitet
    Das Detail, das mir am besten gefällt und das wir in unserem Tool nicht nachbilden konnten, ist die Art, wie die Animation zwischen Anmeldefenster und Live-Desktop nahtlos weiterläuft. Wir haben mit phonto eine plattformübergreifende Umsetzung derselben Idee gebaut: https://github.com/museslabs/phonto. Ich wollte ohnehin gerade den gesamten Reverse-Engineering-Prozess aufschreiben; vielleicht ist das der Anstoß, damit anzufangen

    • Die Funktionsweise ist, dass die Videowiedergabe zwischen Sperrbildschirm und Desktop geteilt wird und Apples Framework transparent zwischen den dargestellten Oberflächen umschaltet
  • Das erinnert mich daran, dass man unter Windows 98 HTML-Seiten als Hintergrundbild verwenden konnte. In dieses HTML konnte man auch Videos einbetten

    • Unter X11 kann man jedes beliebige Programm als Root-Fenster festlegen
      Davon abgesehen war Active Desktop unter Windows 98 der instabilste Teil eines ohnehin schon instabilen Betriebssystems. Auf einem frisch installierten System musste man es als Erstes deaktivieren, und dann stürzte es zwar immer noch ab, aber wenigstens nicht mehr aus Spaß
  • Gut gemacht, aber im README wäre ein Demo-Video schön

  • Die App hat jetzt eine Landingpage mit Download-Link, und man kann sich auch die anderen Projekte ansehen. Das größte Projekt ist der Refrax-Browser, dazu kommen viele kleinere Utility-Apps
    https://kagerou.glass/phosphene/
    https://kagerou.glass

    • Ich frage mich, wie die Seite so schnell erstellt wurde
      Mich würde auch interessieren, was beim Design geholfen hat
  • Wirklich cool. Das erinnert mich daran, dass ich schon einmal ein paar alte Videos hatte, die ich gern als benutzerdefinierten Video-Hintergrund verwendet hätte
    Bis ich das hier gesehen habe, wusste ich nicht einmal, dass das nicht standardmäßig unterstützt wird