7 votes

Comment puis-je obtenir de manière fiable le nom de fichier de l'image d'arrière-plan actuelle ?

La dernière mise à jour de Lion a cassé un simple Geeklet osascript qui utilisait les événements système pour rechercher les noms des images d'arrière-plan. L'exécution de la commande associée dans le terminal renvoie le même nom, à chaque fois, même si l'image change toutes les minutes.

Le code ci-dessous fonctionnait pour l'écran principal de mon Mac à deux têtes jusqu'à cette dernière mise à jour :

osascript -e 'tell application "System Events" to get value of (property list item "LastName" of property list item "default" of property list item "Background" of property list file ((path to preferences as Unicode text) & "com.apple.desktop.plist"))'

L'écran secondaire a un identifiant codé en dur où va "default" ; j'ai utilisé les identifiants numériques, tout ce à quoi je peux penser.

Ce qui est particulièrement ennuyeux est un vidage utilisant juste 'l'élément de liste de propriété 'Background' dans le script ci-dessus. montre les nouveaux noms de fichiers avec le "LastName" approprié. Mais l'exécution du script ci-dessus renvoie toujours les deux mêmes noms, les fichiers initiaux indiqués dans les préférences du bureau/de l'écran de veille.

Je ne suis pas un gourou d'AppleScript ou de System Events/plist, et toute aide serait appréciée.

--UPDATE--

Modifier le plist "Spaces" sur OSX pour définir des bureaux par défaut et quelques expériences avec la commande "defaults" ont conduit à la solution suivante (moins qu'idéale en raison des identifiants intégrés, mais...) :

osascript -e 'tell application "System Events" to get value of (property list item "LastName" of property list item "722492885" of property list item "" of property list item "spaces" of property list item "Background" of property list file ((path to preferences as Unicode text) & "com.apple.desktop.plist"))'

Je suis certainement ouvert à des solutions plus élégantes, mais elles doit reflète le changement de nom de fichier avec le paramètre "Aléatoire" dans les préférences du bureau. J'aimerais même voir une version plus lisible de ce qui est affiché ci-dessus - sur une seule ligne. Je suis sûr qu'il y a de meilleures façons de présenter les choses !

2voto

Igor Zelaya Points 2266

Essayez

/usr/libexec/PlistBuddy -c 'Print :Background:default:ImageFilePath' ~/Library/Preferences/com.apple.desktop.plist

0 votes

J'aimerais pouvoir le faire avec defaults read com.apple.Desktop Background mais je ne sais pas comment spécifier default:ImageFilePath .

0 votes

Cela va afficher un chemin de fichier, vous avez raison. Malheureusement, avec les paramètres "Desktop & Screen Saver" de "Change picture every minute" et "Random", c'est le chemin de la première image sélectionnée. Il ne change pas au fur et à mesure que les minutes passent et que l'arrière-plan change.

0 votes

@KenGentle, vous avez raison. Il semble que com.apple.desktop.plist ne reçoit pas cette information. Désolé pour le bruit.

1voto

Natsfan Points 12853

Vous pouvez taper :

defaults write com.apple.dock desktop-picture-show-debug-text -bool TRUE;killall Dock

et cela imprimera le chemin complet sur l'image du bureau. Ainsi, en regardant votre bureau, vous verrez le nom et le chemin du fichier.

Pour supprimer le nom du fichier sur le bureau, il suffit de taper :

defaults delete com.apple.dock desktop-picture-show-debug-text;killall Dock

Plus d'informations à ce sujet sont données ici .

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