Cambia immagine di sfondo con Tempo

0

Ho creato 288 diversi rendering di terra in base alla posizione del sole (uno per ogni 5 minuti terrestri) basato su questo file da blendswap. La sequenza di immagini inizia a mezzogiorno e termina a mezzogiorno. Vorrei impostare ad ogni ora del giorno l'immagine corretta come immagine di sfondo su OS X (ad esempio alle 12.00 dovrebbe essere l'immagine n. 1 alle 18:00 dovrebbe essere l'immagine n. 72). Come potrei farlo.

(L'idea originale era quella di utilizzare l'impostazione "cambia immagine di sfondo ogni 5 minuti" nelle impostazioni di sfondo di OS X, ma cambia solo l'immagine se il computer è attivo. Pertanto la sequenza non è sincronizzata ogni volta che chiudo giù il computer

btw Ho caricato i file

link

Sono a piena risoluzione Retina a 650 MB. + blendfile + licenza.

    
posta miceterminator 23.07.2012 - 08:32
fonte

3 risposte

2

Grazie per il tuo contributo

Quindi alla fine sono riuscito a farlo (almeno credo di sì)

Ho incorporato un oggetto Applescript per cambiare lo sfondo in uno script di shell che ho aggiunto a launchd.

Ecco come appare:

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
'

file 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 per metterlo in azione

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

EDIT:

L'ultimo comando è lì per caricare direttamente lo script, tuttavia non verrà eseguito all'avvio. Per farlo Devi copiare il file

com.individual.Background.plist

nella cartella ~ / Libary / LaunchAgents /.

    
risposta data 24.07.2012 - 16:56
fonte
0

Questa potrebbe essere una risposta sfortunata, ma suggerirei di creare una composizione Quartz per questo, trasformarla in uno screen saver e utilizzare uno dei tanti trucchi disponibili per eseguire gli screen saver come carta da parati.

    
risposta data 23.07.2012 - 18:07
fonte
0

Ecco una versione più breve dello 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\""

Puoi eseguire lo script ogni cinque minuti modificando il crontab con EDITOR=nano crontab -e e aggiungendo una riga come */5 * * * * ~/script.sh . A differenza di LaunchAgent, non verrebbe eseguito dopo il risveglio dal sonno.

    
risposta data 25.07.2012 - 02:46
fonte

Leggi altre domande sui tag