Cambiar imagen de fondo con tiempo

0

Creé 288 renderizaciones terrestres diferentes dependiendo de la posición del sol (una por cada 5 minutos terrestres) basada en este archivo de blendswap. Es la secuencia de imágenes comienza al mediodía y termina al mediodía. Me gustaría establecer en cada momento del día la imagen correcta como imagen de fondo en OS X (p. Ej., A las 12.00 debe ser la imagen No 1 a las 18:00, debe ser la imagen No 72). ¿Cómo podría hacer eso.

(La idea original era utilizar la configuración "cambiar la imagen de fondo cada 5 minutos" en la configuración de fondo de OS X, pero solo cambia la imagen si el equipo está despierto. Por lo tanto, la secuencia no estará sincronizada cada vez que me apague. abajo la computadora

btw subí los archivos

enlace

Están en resolución completa de Retina a 650 MB. + blendfile + license.

    
pregunta miceterminator 23.07.2012 - 08:32

3 respuestas

2

Gracias por tu aportación

Así que finalmente logré hacerlo (al menos eso creo)

Incrusté un Applescript para cambiar el fondo en un script de shell que lo agregué 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>

comando para ponerlo en acción

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á en el inicio. Para hacer eso tienes que copiar el archivo

com.individual.Background.plist

a la carpeta ~ / Libary / LaunchAgents /.

    
respondido por el miceterminator 24.07.2012 - 16:56
0

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

    
respondido por el Alexander 23.07.2012 - 18:07
0

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 agregando una línea como */5 * * * * ~/script.sh . Sin embargo, a diferencia de LaunchAgent, no se ejecutaría después de despertarse de la suspensión.

    
respondido por el user495470 25.07.2012 - 02:46

Lea otras preguntas en las etiquetas