L'impostazione dell'immagine di sfondo nel file dropbox non aggiorna lo sfondo

1

Sto cercando di avere il mio sfondo del desktop come un'immagine memorizzata sul mio account Dropbox. La mia cartella personale è collegata nella mia home directory. Quando ho impostato lo sfondo su questa foto e poi cambio la foto, lo sfondo non segue. So che il file è cambiato aprendo in Finder.

Se riavvio la macchina, l'immagine cambia, quindi deve essere memorizzata nella cache da qualche parte?

    
posta preezzzy 19.07.2015 - 22:55
fonte

2 risposte

1

Hai ragione, è nella cache. Quindi, se vuoi cambiare l'immagine del desktop, dovrai cambiare il file db. In Yosemite, questo è ~/Library/Application\ Support/Dock/desktoppicture.db

E ecco un modo per cambiarlo usando il Terminale :

sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/your/image.jpg'" && killall Dock

Quindi, se vuoi eseguirlo dopo che un file è cambiato (ad esempio modificandolo tramite dropbox) puoi usare uno script di watcher del file, come questo Ruby .

    
risposta data 20.07.2015 - 18:21
fonte
0

Il metodo precedente funziona, ma esiste anche un altro (un po 'brutale) modo. È necessario LaunchAgent per monitorare il file che sta cambiando ed eseguire un'azione quando viene modificata.

Salva quanto segue in un file in ~ / Library / LaunchAgents /, puoi usare come nome file 'com.yourname.programname.plist'). Sostituisci /full/path/to/desktoppicture  con il percorso completo per l'immagine nella cartella Dropbox.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.yourname.programname</string>
        <key>Program</key>
        <string>/usr/bin/killall</string>
        <key>ProgramArguments</key>
        <array>
            <string>killall</string>
            <string>Dock</string>
        </array>
        <key>WatchPaths</key>
        <array>
            <string>/full/path/to/your/desktoppicture</string>
        </array>
    </dict>
    </plist>

Dopo aver modificato e salvato l'elenco delle proprietà, aprire il Terminale e digitare:

launchctl load -w ~/Library/LaunchAgents/com.yourname.programname.plist

(sostituendo yourname.programname con quello che hai chiamato il file plist).

A questo punto, ogni volta che il file viene modificato, verrà eseguito killall Dock , chiudendo l'app Dock e forzando l'aggiornamento del Desktop. Questo è un po 'brutale e potrebbe essere fastidioso dal momento che l'aggiornamento Dock / Desktop richiede ~ 1 secondo e mentre non è possibile utilizzare Mission Control e Dashboard, ma dovrebbe essere automatico.

Se si desidera disinstallare LaunchAgent, digitare innanzitutto:

launchctl unload -w ~/Library/LaunchAgents/com.yourname.programname.plist

(di nuovo, rinominare il file in modo che corrisponda al tuo), quindi rimuovere il file plist da ~ / LaunchAgents /

    
risposta data 27.08.2015 - 20:34
fonte

Leggi altre domande sui tag