Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[INFO] Comment j'ai mis mon fond d'écran sur les milliers de photos que j'avais pour Décor

36 réponses
Avatar
blanc
Bonjour à tous,

Depuis 9 mois que je suis passé à Mac Os X, je n'avais pas encore réussi
(pas eu le temps) de faire fonctionner mon fond d'écran à la manière de
celui que j'avais sous MacOS 9 avec l'appli Décor de F. Pottier.

En fait, les essais que j'avais fait il y a 9 mois, m'avais permis de
voir les faiblesses des Préf Système "Bureau et Economiseur d'Ecran" de
Panther.

Il faut dire que les images (4054 actuellement) que j'avais pour Décor
étaient dans un dossier organisé en nombreux sous-dossiers, et sur un
volume différent de celui de départ.

Choisir un tel dossier dans les PS-BEE ne marche pas, car elles
n'acceptent apparemment pas de plonger récursivement dans les
ss-dossiers.

J'avais essayé de remplir le dossier Images (Pictures) de mon compte
avec des alias vers les sous dossiers ou vers les images elles-mêmes.
Echec encore.

je n'avais pas envie de copier toutes mes images (plus de 400 Mo) dans
un seul dossier, ni de désorganiser mon dossier d'images...

Reprenant aujourd'hui le pb, j'ai pu constater que si au lieu d'alias,
je mettais des liens symboliques, cela marchais.

Mais pour créer plus de 4000 liens symb, j'avais besoin d'écrire un
script shell. C'est donc ce que j'ai fait avec succès. Et je le
communique à la collectivité, pour ceux que ça intéresse.

En fait j'ai fait deux scripts :
Le premier cherche les images dans le dossier donné en argument :

------------
#!/bin/zsh
# 12/8/04 - imag2decor - JPaul Blanc - script pour créer des liens
# symboliques d'images contenus dans un dossier (dont le nom
# est donné en argt) et les placer dans le dossier ~/Pictures en
# vérifiant qu'elles n'y sont pas déjà. .

dest=~/Pictures

for fich in `ls $1` # pour chaque fichier du répertoire
# (dossier) en argt
do if [ -f $1/$fich -a ! -f $dest/$fich ] # s'il est régulier et si le
# lien n'est pas déjà créé
then echo $fich # j'affiche son nom
ln -s $1/$fich $dest # et je crée le lien symbolique
fi
done
---------------

Le deuxième cherche récursivement les sous-dossiers du dossier donné en
argt, et appelle le précédent script imag2decor pour chacun d'eux :

------------
#!/bin/zsh
# 12/8/04 - imag2decorR - JPaul Blanc - script pour créer des liens
# symboliques d'images contenus **récursivement ** dans un
# dossier (dont le nom est donné en argument).

find $1 -type d -exec ~/scripts/imag2decor {} \;
------------

On doit pouvoir améliorer ceci : ne faire qu'un seul script, et faire
qu'il accepte n'importe quel noms de fichiers (ce n'est pas le cas
actuellement : les espaces en particulier ne passent pas). Mais je ne
veux pas me creuser la tête davantage pour l'instant, et je suis sûr que
d'autres le feront. ;-))

Questions annexes :
1) Mettre l'économiseur d'écran sur le même dossier d'images fonctionne
parfaitement, mais il reprend les images toujours dans le même ordre, et
c'est dommage. Y aurait-il un moyen de les lui faire prendre dans un
ordre aléatoire ?

2) Quelqu'un aurait-il un moyen de connaître à tout instant (à la
demande) le nom ou le chemin de l'image qui est en fond d'écran ?

JPaul.
--
/==/==\\-\ Jean-Paul BLANC
/ /--/--//\\ quelque-part (somewhere)
|/| L |\\\ en (in)
\/|| = |||\\\ FRANCE

10 réponses

1 2 3 4
Avatar
patpro ~ patrick proniewski
In article <1gier2i.18rvbmzpa2ksgN%,
(JPaul) wrote:

On doit pouvoir améliorer ceci : ne faire qu'un seul script, et faire
qu'il accepte n'importe quel noms de fichiers (ce n'est pas le cas
actuellement : les espaces en particulier ne passent pas). Mais je ne
veux pas me creuser la tête davantage pour l'instant, et je suis sûr que
d'autres le feront. ;-))


avec des guillemets par exemple :

ln -s "$1/$fich" "$dest"


Questions annexes :
1) Mettre l'économiseur d'écran sur le même dossier d'images fonctionne
parfaitement, mais il reprend les images toujours dans le même ordre, et
c'est dommage. Y aurait-il un moyen de les lui faire prendre dans un
ordre aléatoire ?


surement... =:)


2) Quelqu'un aurait-il un moyen de connaître à tout instant (à la
demande) le nom ou le chemin de l'image qui est en fond d'écran ?


j'en vois pas, comme ca, de maniere évidente.

patpro

--
je cherche un poste d'admin UNIX/Mac
http://patpro.net/cv.php

Avatar
testuz73
patpro ~ patrick proniewski wrote:

In article <1gier2i.18rvbmzpa2ksgN%,
(JPaul) wrote:

2) Quelqu'un aurait-il un moyen de connaître à tout instant (à la
demande) le nom ou le chemin de l'image qui est en fond d'écran ?


j'en vois pas, comme ca, de maniere évidente.


Il faudrait déjà voire quel est le process qui change les images. Puis
voire si on peut l'interroger au moins par AppleScript.

--
Frédéric Testuz
<mailto:


Avatar
pmanet
JPaul wrote:

Choisir un tel dossier dans les PS-BEE ne marche pas, car elles
n'acceptent apparemment pas de plonger récursivement dans les
ss-dossiers.


tu es certin ?

Avatar
Frederic PONCET
Voilà une contribution fort intéressante, mais tout de même... je me
demande...

A quoi ça sert d'avoir 4000 fonds d'écran différents? S'il change tous
les jours, il faut presque onze ans pour tous les voir...

C'est une nouvelle névrose?
Avatar
anonyme
Frederic PONCET wrote:

A quoi ça sert d'avoir 4000 fonds d'écran différents? S'il change tous
les jours, il faut presque onze ans pour tous les voir...


On peut les changer toutes les 15 secondes, et comme ça pas besoin
d'économiseur d'écran.

--
Serge Pajak

Avatar
blanc
manet wrote:

JPaul wrote:
Choisir un tel dossier dans les PS-BEE ne marche pas, car elles
n'acceptent apparemment pas de plonger récursivement dans les
ss-dossiers.


tu es certain ?


J'a réessayer bien sûr avant de faire mon script. Mais peut-être ai-je
raté qque chose ?-/

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE


Avatar
blanc
patpro ~ patrick proniewski wrote:

(JPaul) wrote:
On doit pouvoir améliorer ceci : ne faire qu'un seul script, et faire
qu'il accepte n'importe quel noms de fichiers (ce n'est pas le cas
actuellement : les espaces en particulier ne passent pas). Mais je ne
veux pas me creuser la tête davantage pour l'instant, et je suis sûr que
d'autres le feront. ;-))


avec des guillemets par exemple :

ln -s "$1/$fich" "$dest"


Ca peut effectivement permettre de passer des caract spéciaux. Mais pas
les espaces, car ceci sont perdus dans le découpage fait dans la ligne
suivante :

for fich in `ls $1`

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE


Avatar
blanc
Matt wrote:

Cette information est stockée dans :
~/Library/Preferences/com.apple.desktop.plist

Voir la directive Background > default > ImageFilePath


Ca ne marche pas : ce path n'est modifié que lorsqu'on va dans la PS-BEE
pour modilier la liste d'image sélectionnée.

Par contre, c'est la directive suivante LastName qui garde effectivement
le nom du fichier actuellement affiché.
Maintenant si quelqu'un veut bien me donner un petit Applescript qui
afficherai la ligne qui suit la ligne contenant LastName ... ;-)

En attendant, merci pour ta réponse, Matt.

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
blanc
patpro ~ patrick proniewski wrote:

(JPaul) wrote:
1) Mettre l'économiseur d'écran sur le même dossier d'images fonctionne
parfaitement, mais il reprend les images toujours dans le même ordre, et
c'est dommage. Y aurait-il un moyen de les lui faire prendre dans un
ordre aléatoire ?


surement... =:)


Et bien oui, j'ai réussi, en m'inspirant de la suggestion de Matt pour
ma deuxième question. J'ai cherché quels fichiers étaient modifiés par
le changement d'économiseur d'écran. J'en ai trouvé trois :

com.apple.systempreferences.plist
ByHost/com.apple.screensaver.00039377d92e.plist
ByHost/com.apple.screensaver.slideshow.00039377d92e.plist

et dans le troisième, j'ai trouvé une directive Random qui était à
false/
Il m'a suffit de mettre true/, et ça marche !

Par contre avec 4000 fichiers, le choix de la liste aléatoire prends
beaucoup de temps. J'ai donc pris une liste d'images restreintes. ;-))

Merci à toi, ainsi qu'à Matt.

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE


Avatar
Saïd
JPaul :
patpro ~ patrick proniewski wrote:

(JPaul) wrote:
On doit pouvoir améliorer ceci : ne faire qu'un seul script, et faire
qu'il accepte n'importe quel noms de fichiers (ce n'est pas le cas
actuellement : les espaces en particulier ne passent pas). Mais je ne
veux pas me creuser la tête davantage pour l'instant, et je suis sûr que
d'autres le feront. ;-))


avec des guillemets par exemple :

ln -s "$1/$fich" "$dest"


Ca peut effectivement permettre de passer des caract spéciaux. Mais pas
les espaces, car ceci sont perdus dans le découpage fait dans la ligne
suivante :

for fich in `ls $1`


Que tu peux remplacer par quelque chose comme:
find $1 -maxdepth 1 -mindepth 1 -exec quoifaireavec {} ;

un seul arguement sera transmis a quoifaireavec qui peut etre un autre
script.

--
Saïd.
C programmers never die - they're just cast into void.



1 2 3 4