Estuve este fin de semana pasado buscando como adaptar un script que utilizo en Linux para Mac OS X (10.8 Mountain Lion para ser mas específico).

El script lo que hace es descargar una imagen y colocarla como background. Las imágenes las descarga de Reddit. Específicamente de /r/earthporn donde hay fotos impresionantes de lugares.

En mi caso, el script funciona en Python, el problema que tenia era que no sabia como cambiar la imagen de fondo desde un script. La solución es sencilla (una vez la encuentras),

defaults write com.apple.desktop Background '{default = {ImageFilePath = "/Users/.scripts/background_changer/image.png"; };}'

Un script sencillo, en Bash, que cambie el background seria

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/bin/bash
###########################
#Author: Ruben Varela Rosa
#Created: 2013-01-28
############################

PathToImages="/Users/ruben/.scripts/background_changer"
Image="image_name.png"

if [ -f $PathToImages/$Image ]; then
    defaults write com.apple.desktop Background '{defaults = {ImageFilePath = "$PathToImages/$Image"; };}';
    killall Dock;
fi

Si desean cambiar el Background para otro usuario, tendrían que hacerlo como root. No mucho mas complicado, pero si hay unas cosas adicionales que hay que hacer.

1
2
3
4
5
6
7
8
#!/bin/bash
user="user_name"
path_to_images="/User/$user/.scripts/background_changer/"
images="image_name.png"

/usr/bin/defaults write /Users/$user/Library/Preferences/com.apple.desktop Background '{default = {ImageFilePath = "$path_to_images/$images"; };}'

chown $user /Users/$user/Library/Preferences/com.apple.desktop.plist

Espero que otros también encuentren útil lo anterior.