0 votos

Cambiar la imagen de fondo con Time

He creado 288 renders diferentes de la tierra en función de la posición del sol (uno por cada 5 minutos terrestres) basados en este archivo de blendswap. La secuencia de imágenes comienza a mediodía y termina a mediodía. Me gustaría establecer en cada momento del día la imagen correcta como imagen de fondo en OS X (por ejemplo, a las 12:00 debería ser la imagen nº 1, a las 18:00 debería ser la imagen nº 72). ¿Cómo puedo hacerlo?

(La idea original era utilizar el ajuste "cambiar la imagen de fondo cada 5 minutos" en la configuración de fondo de OS X, pero sólo cambia la imagen si el ordenador está despierto. Por lo tanto, la secuencia se desincroniza cada vez que apago el ordenador.

btw he subido los archivos

https://dl.dropbox.com/u/19023009/Blender/background.zip

Están a plena resolución Retina a 650MB. + blendfile + licencia.

2voto

Jon Smock Puntos 3921

Gracias por su aportación

Así que finalmente lo he conseguido (al menos eso creo)

He incrustado un Applescript para cambiar el fondo en un shell script que he añadido a launchd.

Esto es lo que parece:

script "scriptly.sh"

#!/bin/bash
osascript -e '
set myhour to get the (hours of (current date))
set myminutes to get the (minutes of (current date))
set mypicturenumber to (myhour - 12) * 12 + myminutes / 5 as integer
if mypicturenumber < 0 then
    set mypicturenumber to (288 + mypicturenumber)
end if
set picnumber to 0
if mypicturenumber > 99 then
    set picnumber to "0" & mypicturenumber
end if

if (99 ≥ mypicturenumber) = (9 < mypicturenumber) then
    set picnumber to "00" & mypicturenumber
end if
if 9 ≥ mypicturenumber then
    set picnumber to "000" & mypicturenumber
end if
tell application "Finder"
    set desktop picture to {"Macintosh HD:users:USERNAME:Individualfile:backgrounds:earth:earth24h" & picnumber & ".png"} as alias
end tell
'

archivo launchd "com.individual.Background.plist"

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.individual.Background</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/Users/USERNAME/Individualfile/scriptly.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer>
    <key>UserName</key>
    <string>USERNAME</string>
</dict>
</plist>

para ponerlo en marcha

launchctl load /Users/USERNAME/Individualfile/com.individual.Background.plist

EDITAR:

El último comando está ahí para cargar el script directamente, sin embargo no se ejecutará al inicio. Para ello hay que copiar el archivo

com.individual.Background.plist

a la carpeta ~/Libary/LaunchAgents/.

0voto

Mike Puntos 1018

Esta puede ser una respuesta desafortunada, pero sugeriría hacer una composición de cuarzo para esto, convertirla en un protector de pantalla, y utilizar uno de los muchos trucos disponibles para ejecutar protectores de pantalla como un papel de pared.

0voto

Aquí hay una versión más corta del script:

#!/bin/bash

n=$(((($(date +%H)-12)*12)+$(date +%M)/5))
[[ $n -lt 0 ]] && n=$((n+288))
n=$(printf %04d $n)

osascript -e "tell app \"Finder\" to set desktop picture to POSIX file \"/Users/username/Desktop/background/earth24h$n.png\""

Puedes ejecutar el script cada cinco minutos editando el crontab con EDITOR=nano crontab -e y añadiendo una línea como */5 * * * * ~/script.sh . Sin embargo, a diferencia del LaunchAgent, no se ejecutaría después de despertarse del sueño.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X