1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Phosphene adalah aplikasi menu bar + ekstensi wallpaper yang memutar file video milik pengguna sebagai wallpaper desktop dan layar kunci di macOS
  • Terintegrasi ke pemilih wallpaper bawaan sistem, sehingga video yang ditambahkan akan muncul bersama Aerials bawaan Apple di System Settings → Wallpaper
  • Dibangun di atas WallpaperExtensionKit privat milik Apple, dan menyediakan pemutaran out-of-process, tetap berjalan setelah aplikasi ditutup, serta integrasi siklus hidup layar kunci, idle, dan sleep dengan cara yang sama seperti Apple Aerials
  • Dapat mengimpor MP4, MOV, dan file apa pun yang bisa dibaca AVFoundation, sementara pemilihan wallpaper untuk beberapa display dan tiap Space disimpan oleh macOS
  • Mengimplementasikan gapless looping tanpa flush atau putus dengan cara meng-offset PTS/DTS di batas loop agar tersambung mulus per frame
  • PlaybackPolicy menggabungkan status tutup-buka laptop, level baterai, daya baterai/AC, Game Mode, mode tampilan, jeda oleh pengguna, status tertutup jendela, dan lainnya untuk menentukan perilaku pemutaran sebagai salah satu dari full / reduced / minimal / paused
  • Jika semua display tertutup penuh oleh jendela, rendering dihentikan dan pemutaran dijeda sampai desktop kembali terlihat
  • Secara opsional dapat membuat adaptive variants beresolusi lebih rendah dan fps lebih rendah terlebih dahulu, lalu renderer menggantinya di setiap batas loop dengan varian termurah yang masih memenuhi kebijakan saat ini
  • Dalam pengaturan Only on Lock Screen, wallpaper muncul dan menghilang secara alami dengan kurva kubik saat perangkat dikunci dan dibuka, menyesuaikan perilaku Apple Aerials
  • Di sisi aplikasi, ini adalah aplikasi menu bar berbasis SwiftUI yang menangani pustaka video, metadata per video, optimasi HEVC, preferensi, dan Darwin notification untuk perubahan pustaka
  • Di sisi ekstensi, ia berjalan di dalam WallpaperAgent sistem, memuat WallpaperExtensionKit.framework saat runtime, dan merender frame ke CAContext jarak jauh dengan AVSampleBufferDisplayLayer
  • Karena AVPlayerLayer diam-diam gagal di dalam CAContext jarak jauh, VideoRenderer langsung mengendalikan AVAssetReader dan AVSampleBufferDisplayLayer untuk mempertahankan timeline yang terus meningkat
  • Bergantung pada swizzle WallpaperSnapshotXPC dan parsing XPC berbasis Mirror, sehingga jika Apple mengubah tipe privat atau nama field, sisi snapshot dan pemrosesan permintaan bisa rusak
  • Persyaratannya adalah macOS Tahoe 26.0+, Apple Silicon, Xcode 17+, dan menargetkan arm64-apple-macos26.0 dengan Swift 6 strict concurrency diaktifkan
  • Lisensinya adalah MIT, dan dinyatakan bebas digunakan tanpa jaminan apa pun

1 komentar

 
GN⁺ 3 jam lalu
Komentar Hacker News
  • Sangat rapi. Awalnya aku bingung, “screensaver video bisa diunduh, jadi kenapa harus mengekstrak frame?” lalu setelah membaca komentar baru paham bahwa video milikku sendiri bisa dipakai untuk desktop dan lock screen
    Akan jauh lebih baik jika judulnya langsung jelas tentang apa yang bisa dilakukan dan bagaimana caranya, tanpa menyembunyikan inti

  • Aku cukup paham kenapa Tahoe lumayan banyak dikritik, tapi wallpaper video dan efek transparansi ini terasa seperti Windows Vista, jadi lucu sekaligus memunculkan nostalgia
    Sekarang saatnya memasang wallpaper air terjun Vista agar benar-benar terasa seperti tahun 2007

    • “Nostalgia” Windows Vista? Itu membuatku merasa seperti sudah hidup sangat lama
    • Masalah terbesar Tahoe bagiku adalah animasi lock screen-nya terus tersendat dan berhenti. Aku memakai M3 Pro; kalau bisa memutar video 4K tanpa frame drop, wallpaper video sederhana juga seharusnya berjalan baik, dan kalau tidak bisa, menurutku fitur itu seharusnya tidak ada
    • Sepertinya cuma ada beberapa lusin orang di seluruh dunia yang berbagi nostalgia Vista
    • https://windowswallpaper.miraheze.org/wiki/Windows_Vista
      Aku penasaran air terjun yang mana. Mengejutkan juga ternyata Vista punya wallpaper sebanyak ini; yang kuingat cuma gradasi hijau default dan hutan bambu yang sempat kupakai
    • Aku jadi rindu masa sekitar 1998 ketika hack xscreensaver dipakai sebagai latar jendela root X, alias ditampilkan di desktop
  • Terima kasih banyak untuk ini. Aku sedang membuat koleksi screensaver, tapi LegacyScreenSaver terlalu berantakan
    Aku berharap seseorang akan membongkar framework wallpaper privat Apple, dan ternyata benar-benar ada yang melakukannya

    • Menurutku ini untuk WallpaperAgent, dan struktur ekstensinya adalah WallpaperAgent menjalankan ekstensi com.apple.wallpaper di desktop
      Untuk screensaver lihat tulisan lainnya; di sana ada contoh API screensaver privat yang dipakai untuk melewati ini. Apple memakai keduanya di “Aerials”-nya sendiri, dan punya sistem sinkronisasi yang berbagi posisi antara pemutar screensaver dan pemutar desktop
    • LegacyScreenSaver benar-benar memakan banyak memori
  • Menurutku wallpaper video terbaik Apple adalah Macintosh. Aku penasaran bagaimana cara kerjanya

    • Aku juga penasaran. Saat melihat sebagian wallpaper itu, aku merasa itu bukan sekadar kumpulan file video tetapi tampaknya dibuat secara prosedural, jadi aku mengeceknya lagi
      Ada beberapa titik di mana tanggal dan waktunya cocok dengan tanggal dan waktu sistem sampai ke hitungan detik
  • Wah, ini benar-benar keren. Aku berhasil me-reverse-engineer framework .appex screensaver privat agar bisa berjalan di Aerial 4, dan minggu lalu sudah merilis proyek contoh serta dokumentasinya bersama v4 untuk siapa pun yang ingin memakainya: https://github.com/AerialScreensaver/AppexSaverMinimal
    Aku juga mencoba appex wallpaper dengan cara yang sama, dan reverse engineering-nya sendiri tampak mudah, tetapi WallpaperAgent menolak memuatnya, jadi untuk sekarang aku masih memakai trik klasik menampilkan jendela dan pemutar videoku di atas wallpaper dan di bawah ikon. Aku akan melihat apa yang mungkin terlewat

  • Dibuat dengan sangat baik. Belakangan ini aku juga masuk ke lubang kelinci serupa, me-reverse-engineer katalog Aerials dan mencari tahu bagaimana Apple menyambungkan semua ini, jadi menyenangkan melihat ada proyek open source lain yang melakukan hal serupa
    Detail favoritku, dan bagian yang tidak bisa kami tiru di alat kami, adalah bagaimana animasinya tetap berlanjut antara jendela login dan desktop live. Kami membuat phonto, implementasi lintas platform dari ide yang sama: https://github.com/museslabs/phonto. Aku memang sedang berniat menulis seluruh proses reverse engineering-nya, dan ini mungkin bisa jadi pemicunya

    • Cara kerjanya adalah pemutaran video dibagi antara lock screen dan desktop, lalu framework Apple mengalihkan permukaan tampilannya menjadi transparan
  • Ini mengingatkanku bahwa di Windows 98 kita bisa memakai halaman HTML sebagai wallpaper, dan HTML itu bahkan bisa memuat video

    • Di X11, program apa pun yang diinginkan bisa dijadikan jendela root
      Ngomong-ngomong, Active Desktop di Windows 98 adalah bagian paling tidak stabil dari sistem operasi yang memang sudah tidak stabil sejak awal. Saat memasang sistem baru, itu hal pertama yang harus dimatikan, dan meski sistemnya tetap bisa crash hanya karena ditatap salah, setidaknya ia tidak lagi crash demi hiburan
  • Bagus sekali, tapi akan lebih baik kalau README punya video demo

  • Aplikasinya sekarang punya landing page dengan tautan unduhan, dan proyek-proyek lain juga bisa dilihat di sana. Proyek terbesar adalah browser Refrax, dan selain itu ada banyak aplikasi utilitas kecil
    https://kagerou.glass/phosphene/
    https://kagerou.glass

    • Aku penasaran bagaimana halamannya bisa dibuat secepat itu
      Aku juga penasaran apa yang membantu dalam desainnya
  • Benar-benar keren. Ini mengingatkanku bahwa dulu aku ingin mencoba memasang wallpaper video kustom dari video yang pernah kumiliki
    Sampai melihat ini, aku bahkan tidak sadar bahwa itu tidak didukung secara bawaan