Show HN: I reverse engineered Apple's video wallpapers (github.com)
I built Phosphene to sell it, but the existing competitors were polished enough that the time it would have taken to catch up wasn't going to pay off. So I'm open-sourcing it.
WallpaperExtensionKit.framework is what powers macOS wallpapers. It controls what’s shows in the Settings app. It took a lot of trial and error to replicate the behavior, but the result is that your custom wallpapers appear alongside everything else. I wanted to have an “add” button there too, but I couldn’t find a way to do so, so there’s a companion app that will put your video where it needs to be.
Unlike Apple's Aerials, the video keeps playing on the desktop (not just the lock screen). The renderer drives AVSampleBufferDisplayLayer directly with PTS-offset gapless looping, and pauses or downshifts based on thermal state, battery level, brightness, and window occlusion.
It’s free and works well.
49 comments
[ 2.4 ms ] story [ 56.9 ms ] threadHowever, it may definitely get broken by Apple, as you note.
And I wasn't even using video wallpapers at the time.
Just discovered I had no internet 3 days into the month as my ISP had cut me off. Had to dig deep and spend hours I'll never get back trying to find out where all the data was going.
Here's a thread I just found now that shows others having similar issues: https://www.reddit.com/r/MacOS/comments/1ii38g8/macbook_wall...
https://kagerou.glass/phosphene/
https://kagerou.glass
Apple's uses both for their own "Aerials" and they have a sync system to share the position between the screensaver player and the desktop player.
Out of curiosity: how much did you need to steer Claude while working on this project, and how long did it have?
Asking partly because I see "Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>", and partly because I keep hearing "so what do you do with all these agents", and this is a good example of what people do with all these agents.
On a similar note, I’d love to replace Aerials on tvOS with my own videos. I have yet to figure out how to craft a working data feed that the tvOS will accept using the secret mode that I believe is used in the retail store displays.
Anyhow, on topic, that windows 98 active desktop was the most unstable part of an already shaky OS. First thing to turn off when installing a new system. I mean, it would still crash if you looked at it wrong. But at least it was not dying for the fun of it anymore.
https://pastebin.com/XLhjr4pf https://github.com/kageroumado/swiftui-macos-skill
This was literally my first hack I did in high school in 2005. Doing something I’d never seen done before, a video wallpaper.
Step one, grab a handle to the video memory serving the wall paper. My “game trainer cheats” experience served me well. That was easy.
I had to figure out the hard way that per pixel calculations are extremely CPU taxing, the YUV to RGB video color space conversion. With a pirated Intel compiler I could get the naive blit into memory videy background working.
But then I wondered how other video apps were working so efficiently?
They used a GPU overlay! How it worked is you’d designate a color on your screen as the overlay color, and, when the screen was rendered, any pixel that was the overlay color was swapped with the full screen rendered video. I forget the specifics, it was some directX api. So, set the wallpaper to the hottest hot pink, run the renderer, and bobs your uncle, video wallpaper.
Everyone I showed this to was amazed, I really though I was on to something! Trouble was, I couldn’t get the damn thing to run on other people’s computers!
Little did I know or understand about the dreaded VCruntime redistributable. It wasn’t until 10 years later when I started working in industry I learned about “software distribution”. Linux makes it too easy, windows makes it too hard, static linking everything that isn’t network facing is probably the right approach.
I was so annoyed when Vista had the video wallpaper feature. “Man I was doing this years ago!”.