1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Phosphene, kullanıcının sahip olduğu video dosyalarını macOS masaüstü ve kilit ekranı duvar kağıdı olarak oynatan bir menü çubuğu uygulaması + duvar kağıdı uzantısı
  • Sistemin varsayılan duvar kağıdı seçicisine entegre olur; eklenen videolar System Settings → Wallpaper içinde Apple'ın yerleşik Aerials'larıyla birlikte görünür
  • Apple'ın özel WallpaperExtensionKit yapısı üzerine inşa edilmiştir ve Apple Aerials ile aynı şekilde process dışı oynatma, uygulama kapandıktan sonra da sürme, kilit ekranı·boşta kalma·uyku yaşam döngüsüyle entegrasyon sağlar
  • MP4, MOV ve AVFoundation'ın okuyabildiği dosyalar içe aktarılabilir; çoklu ekran ve Space başına duvar kağıdı seçimi macOS tarafından saklanır
  • Döngü sınırında PTS/DTS ofsetlenerek kare düzeyinde birleştirme yapılır; bu sayede flush veya takılma olmadan gapless looping gerçekleştirilir
  • PlaybackPolicy, kapak durumu, pil seviyesi, pil/AC güç, Game Mode, görünürlük modu, kullanıcı duraklatması, örtülme durumu gibi etkenleri birleştirerek oynatma davranışını full / reduced / minimal / paused seçeneklerinden biri olarak belirler
  • Tüm ekranlar pencereler tarafından tamamen kapatıldığında render işlemi durur ve masaüstü yeniden görünene kadar oynatma duraklatılır
  • İsteğe bağlı olarak daha düşük çözünürlükte ve daha düşük fps değerinde adaptive variants önceden üretilebilir; renderer her döngü sınırında mevcut politikayı karşılayan en düşük maliyetli varyanta geçer
  • Only on Lock Screen ayarında, kilitleme ve kilit açma sırasında duvar kağıdı cubic curve ile doğal biçimde belirip kaybolur; böylece Apple Aerials davranışıyla uyum sağlanır
  • Uygulama tarafı, video kütüphanesi, video başına metadata, HEVC optimizasyonu, tercihler ve kütüphane değişiklikleri için Darwin notification işlemlerini yöneten bir SwiftUI menü çubuğu uygulamasıdır
  • Uzantı tarafı sistemdeki WallpaperAgent içinde çalışır, çalışma anında WallpaperExtensionKit.framework yükler ve kareleri uzak CAContext içine AVSampleBufferDisplayLayer ile render eder
  • AVPlayerLayer uzak CAContext içinde sessizce başarısız olduğu için VideoRenderer, monoton artan zaman çizelgesini korumak amacıyla AVAssetReader ve AVSampleBufferDisplayLayer bileşenlerini doğrudan çalıştırır
  • WallpaperSnapshotXPC swizzle ve Mirror tabanlı XPC ayrıştırmasına bağımlı olduğundan, Apple özel tipleri veya alan adlarını değiştirirse snapshot ve istek işleme tarafı bozulabilir
  • Gereksinimler macOS Tahoe 26.0+, Apple Silicon ve Xcode 17+; hedef platform arm64-apple-macos26.0 ve Swift 6 strict concurrency etkin
  • Lisans MIT ve herhangi bir garanti olmadan serbestçe kullanılabileceği belirtiliyor

1 yorum

 
GN⁺ 3 시간 전
Hacker News yorumları
  • Oldukça şık. İlk başta “video ekran koruyucuları indirilebiliyorken neden kareleri kazıyorlar?” diye kafam karıştı, ama yorumları okuyunca kendi videolarımı masaüstü ve kilit ekranında kullanabildiğimi anladım
    Asıl noktayı gizlemeyip, neyi nasıl yapabildiğini doğrudan gösteren bir başlık çok daha iyi olurdu

  • Tahoe’nun epey eleştiri almasını bir ölçüde anlayabiliyorum ama video duvar kağıtları ve şeffaf efektler Windows Vista havası verdiği için eğlenceli ve nostaljik
    Artık Vista şelale duvar kağıdını ayarlayıp gerçekten 2007’deymiş gibi hissetmenin zamanı geldi

    • Windows Vista “nostaljisi” ha, kendimi biraz fazla yaşamış gibi hissettirdi
    • Tahoe’daki en büyük sorun kilit ekranı animasyonunun sürekli takılması ve durması. M3 Pro kullanıyorum; 4K videoları kare düşmeden izleyebiliyorsam basit bir video arka planı da sorunsuz çalışmalı, çalışmıyorsa bence var olmamalı
    • Dünyada Vista nostaljisini paylaşan belki birkaç düzine insan vardır
    • https://windowswallpaper.miraheze.org/wiki/Windows_Vista
      Hangi şelaleden bahsettiğini merak ettim. Vista’da bu kadar çok duvar kağıdı olması da şaşırtıcı; benim hatırladıklarım varsayılan yeşil gradyan benzeri olan ve bir dönem kullandığım bambu ormanı kadardı
    • 1998 civarında xscreensaver hack’lerini X root penceresinin arka planı, yani masaüstü olarak çalıştırdığımız günleri özledim
  • Buna gerçekten teşekkürler. Bir ekran koruyucu koleksiyonu yapıyordum ama LegacyScreenSaver fazlasıyla derme çatmaydı
    Birinin Apple’ın özel duvar kağıdı framework’ünü çözmesini umuyordum, gerçekten de başarmış

    • Benim gördüğüm kadarıyla bu, WallpaperAgent için; com.apple.wallpaper uzantılarını masaüstünde çalıştıran şey WallpaperAgent
      Ekran koruyucular için diğer yazılara bakabilirsiniz; orada bunu aşan özel ekran koruyucu API örnekleri paylaşmıştım. Apple kendi “Aerials” içinde ikisini de kullanıyor ve ekran koruyucu oynatıcısı ile masaüstü oynatıcısı arasında konumu paylaşan bir senkronizasyon sistemi var
    • LegacyScreenSaver gerçekten çok fazla bellek tüketiyor
  • Apple’ın en iyi video duvar kağıdının Macintosh olduğunu düşünüyorum. Nasıl çalıştığını merak ediyorum

    • Ben de merak ediyorum. Bu duvar kağıdının bazı bölümlerine bakınca bunun basit bir video dosyaları koleksiyonu değil, prosedürel olarak üretildiği hissine kapıldım ve kontrol etmek için tekrar baktım
      Tarih ve saatin sistem tarihi ve saatiyle saniyesine kadar eşleştiği birkaç nokta var
  • Vay, bu gerçekten harika. Özel ekran koruyucu .appex framework’ünü tersine mühendislikle çözüp Aerial 4 içinde çalıştırmayı başarmıştım; isteyenler için geçen hafta v4 ile birlikte örnek proje ve belgeleri de yayımladım: https://github.com/AerialScreensaver/AppexSaverMinimal
    Wallpaper appex’i de aynı şekilde denedim; tersine mühendisliğin kendisi kolay görünüyordu ama WallpaperAgent yüklemeyi reddetti, bu yüzden şimdilik duvar kağıdının üstüne ve simgelerin altına kendi penceremi ve video oynatıcımı yerleştirme gibi klasik numarayı kullanıyorum. Neyi kaçırdığımı incelemeyi planlıyorum

  • Gerçekten iyi yapılmış. Yakın zamanda benzer bir tavşan deliğine düşüp Aerials kataloğunu tersine mühendislikle çözmüş ve Apple’ın bunu nasıl birbirine bağladığını anlamıştım; başka bir açık kaynak projesinin de bunu yaptığını görmek güzel
    En sevdiğim ayrıntı ve bizim araçta yeniden üretemediğimiz kısım, animasyonun giriş ekranı ile canlı masaüstü arasında kesintisiz devam etmesi. Biz bunun aynı fikrini çapraz platform olarak uygulayan phonto’yu yaptık: https://github.com/museslabs/phonto. Tüm tersine mühendislik sürecini yazıya dökmeyi düşünüyordum; bu başlamak için iyi bir vesile olabilir

    • Çalışma mantığı, video oynatımının kilit ekranı ile masaüstü arasında paylaşılması ve Apple framework’ünün gösterilen yüzeyi şeffaf biçimde değiştirmesi
  • Windows 98’de HTML sayfalarını duvar kağıdı olarak kullanabildiğimizi hatırladım. O HTML’nin içine video da gömülebiliyordu

    • X11’de istediğiniz herhangi bir programı root penceresi olarak ayarlayabilirsiniz
      Bu arada Windows 98’in Active Desktop’ı zaten kararsız olan bir işletim sisteminin en kararsız parçasıydı. Yeni bir sistem kurunca kapatılan ilk şey oydu; yanlış bakınca yine çöküyordu ama en azından artık eğlence için çökmüyordu
  • İyi yapılmış ama README’de bir demo videosu olsa güzel olurdu

  • Uygulamanın artık indirme bağlantısı olan bir landing page’i var, diğer projelere de bakabilirsiniz. En büyük proje Refrax tarayıcısı, onun dışında da birçok küçük yardımcı uygulama var
    https://kagerou.glass/phosphene/
    https://kagerou.glass

    • Sayfayı nasıl bu kadar hızlı hazırladığını merak ediyorum
      Tasarımda neyin yardımcı olduğunu da merak ediyorum
  • Gerçekten harika. Eskiden sahip olduğum videolardan özel video arka planları ayarlamak istediğimi hatırlattı
    Bunu görene kadar bunun varsayılan olarak desteklenmediğini bile bilmiyordum