1 votes

La définition d'une image d'arrière-plan dans un fichier Dropbox ne met pas à jour l'arrière-plan.

J'essaie de faire en sorte que l'arrière-plan de mon bureau soit une image stockée sur mon compte Dropbox. Mon dossier Dropbox est lié à mon répertoire personnel. Lorsque je règle l'arrière-plan sur cette photo et que je change ensuite de photo, l'arrière-plan ne suit pas. Je sais que le fichier a changé en l'ouvrant dans le Finder.

Si je redémarre la machine, l'image change, elle doit donc être mise en cache quelque part ?

1voto

Olly Points 4314

Vous avez raison, il est mis en cache. Donc si vous voulez changer l'image du bureau, vous devrez changer le fichier db. Dans Yosemite, c'est ~/Library/Application\ Support/Dock/desktoppicture.db

Et Voici un moyen de le modifier à l'aide du terminal :

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

Donc, si vous voulez exécuter cela après qu'un fichier ait été modifié (par exemple en le modifiant via Dropbox), vous pouvez utiliser un script de surveillance de fichier, tel que cette Ruby one .

0voto

Brethil Points 647

La méthode précédente fonctionne, mais il en existe une autre (un peu plus brutale). Vous avez besoin de LaunchAgent pour surveiller le fichier qui change et exécuter une action lorsqu'il est modifié.

Enregistrez ce qui suit dans un fichier dans ~/Bibliothèque/LaunchAgents/, vous pouvez utiliser comme nom de fichier 'com.yourname.programname.plist'). Remplacer /full/path/to/desktoppicture avec le chemin complet de l'image dans votre dossier 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>

Après avoir modifié et enregistré la liste des propriétés, ouvrez le Terminal et tapez :

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

(en remplaçant yourname.programname par le nom que vous avez donné au fichier plist).

À ce stade, chaque fois que le fichier est modifié, killall Dock sera exécutée, ce qui aura pour effet de quitter l'application Dock et de forcer l'actualisation du bureau. C'est un peu brutal, et pourrait être ennuyeux car le rafraîchissement du Dock/Bureau prend ~1 seconde et pendant ce temps vous ne pouvez pas utiliser Mission Control et Dashboard, mais cela devrait être automatique.

Si vous souhaitez désinstaller LaunchAgent, tapez d'abord :

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

(en renommant le fichier pour qu'il corresponde au vôtre), puis supprimez le fichier plist de ~/LaunchAgents/

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X