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:
Thanks a lot for the turorial, it is awesome! :)
I wanted to use the videos as wallpaper instead of screensavers, so I tweaked it a little bit. Instead of xscreensaver I downloaded xwinwrap, which is for snapping anything to your desktop as wallpaper, and then made this script in the folder of the downloaded videos:
It just kills any instance of xwinwrap running if there's any, or starts an instance when none is running, which can be customized with these flags. Within xwinwrap, mplayer is taking care of the playback.
And as a last step, I added the above script to my crontab so that it starts when I log in (I'm not sure whether it's the best way, but it does the job well):
I'm running elementary OS, and the result looks something like this (moving... :D):



I'm unsure about resource usage though, it is yet to be tried out. Be careful with unplugged laptops! :D