Using Apple’s Aerial Screensavers on Ubuntu After coming across the [Aerial] (https://github.com/JohnCoates/Aerial) screensavers for Mac, and installing them, I decided that I had had enough of the graphics-demos of my Ubuntu Precise system. I hope to provide a simple guide on how to add them to your setup as well.
First, you need to install xscreensaver (for example with aptitude, but your distro should have it):
sudo aptitude install xscreensaver
and the latest version of mpv (you must use the latest version, see here for a list of repos for various package managers:
sudo add-apt-repository ppa:mc3man/mpv-tests
sudo aptitude update
sudo aptitude install mpv
Then, we need to go and actually get the videos that Apple uses as screensavers. I wanted to do this regularly as they may add more locations or videos, so I wrote a hacky script that checks the server to see if there are any videos that I do not have on disk and download them:
#!/usr/bin/python
import json
import os
import requests
import sys
if len(sys.argv) != 2:
print("Usage: %s <folder to save videos to>" % (sys.argv[0]))
sys.exit(1)
downloadDir = sys.argv[1]
if downloadDir[-1] != '/':
downloadDir += '/'
response = requests.get("http://a1.phobos.apple.com/us/r1000/000/" +
"Features/atv/AutumnResources/videos/entries.json")
screensavers = json.loads(response.text)
for screensaver in screensavers:
for asset in screensaver['assets']:
filename = downloadDir + asset['id'] + ".mov"
if not os.path.isfile(filename):
print("Downloading %s" % (asset['url'],))
film = requests.get(asset['url'], stream=True)
with open (filename, "wb") as filmFile:
print("Writing %s to %s" % (asset['id'], filename))
for chunk in film.iter_content(chunk_size=1024):
if chunk:
filmFile.write(chunk)
and then I set it to be run every day at 2:16am by adding this to my crontab
(run crontab -e
):
16 02 * * * /home/dhertz/screensavers/get_screensavers.py /home/dhertz/screensavers
You will want to replace where you saved the script and the folder where you wish to save the videos as appropriate.
Finally, I added this to my .xscreensaver (which by default is in your home
directory - if it is not there start xscreensaver), after all of the other
screensaver options (at the end of the big list of names with lines that end
with \n\
)
Best: "Apple Aerial" mpv --really-quiet --shuffle --no-audio \
--fs --loop=inf --no-stop-screensaver \
--wid=$XSCREENSAVER_WINDOW --panscan=1 \
$HOME/screensavers/* \n\
and selected "Only One Screen Saver", "Apple Aerial" and to Cycle After 0 minutes in the xscreensaver-demo:
Using httpie (but cURL would work fine), jq, and aria2, here's a more efficient, faster (it will happily saturate your network connection), and less hacky version of the download script, which also checks if the video files have been updated, not just if they exist:
The only thing is it creates a bunch of metadata files, so you'll also need to modify the xscreensaver section to use
$HOME/path/to/aerial/videos/*.mov
← emphasis on the*.mov
.