OVH Cloud OVH Cloud

[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

6 réponses

1 2 3 4
Avatar
Anonyme
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. ;-))


Bon, indépoendamment de ma réponse précédente, qui simplifie quand-même
beaucoup...


#!/bin/zsh

# Dossier source donné en argument

SRC=$1
DEST="~/Pictures"

find $SRC -type f -print | while read line
do
ficdest=$(echo $line|sed "s#/#---#g")
[ -f "${DEST}/${ficdest}" ] || ln -s "$line" "${DEST}/${ficdest}"
done

Le seul problème est alors que si tu effaces un fichier source, le lien
reste. Si on ne veut pas faire une machine à gaz, la meilleure solution
serait alors d'effacer les liens avant la bouvle par un "rm
~/Pictures/*(@)" (pour n'effacer que les liens)
Mais comme ça risque de faire beaucoup, le mieux serait peut-être de
faire un :
find ~/Pictures -type l -maxdepth 1 -exec rm -f {} ;

Dans les deux cas, le test de présence du lien peut donc être éviter...

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 ?


Dans les prefs de l'économiseur d'écran, choisir l'économiseur "Pictures
Folder" et cliquer ensuite sur le bouton "Options".
Là, cocher la dernière case, celle où il y a marqué "Afficher les
diapositives en 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 ?


J'utilise ChangeDestop... :-)

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net <http://www.mosx.net/> *********

Avatar
blanc
Anonyme wrote:

Ou l'art de se prendre la tête quand des choses simples existent...

<http://www.versiontracker.com/dyn/moreinfo/macosx/12563>

gratuit, complet...


S'il fait effectivement tout ce qu'il dit faire, c'est génial.
Je n'ai malgré pas trouvé dans le descriptif, la fonction me disant le
chemin de l'image qui est en fond d'écran. Elle doit y être très
probablement (d'ailleurs tu me dis plus bas que tu l'utilises). Je vais
voir ça immédiatement (d'ailleurs le téléchargement est déjà parti, 11
mn en 56K ;-).

Merci infiniment.

JPaul.

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

Avatar
blanc
Anonyme wrote:

Le seul problème est alors que si tu effaces un fichier source, le lien
reste.


Certes. Mais pas un gros problème, j'aurais (il me semble ;-) penser à
les supprimer au fur et à mesure.

Dans les deux cas, le test de présence du lien peut donc être éviter...


OK !


Y aurait-il un moyen de les lui faire prendre dans un
ordre aléatoire ?


Dans les prefs de l'économiseur d'écran, choisir l'économiseur "Pictures
Folder" et cliquer ensuite sur le bouton "Options".


Je n'avais simplement pas vu le bouton !
Mais tu as pu sans-doute voir que j'avais trouvé la solution en éditant
le fichier de préférences.

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'utilise ChangeDestop... :-)


C'est donc sûr que je vais en faire autant !
Quel dommage que tu ne m'ai pas répondu plus tôt, et que je n'ai pas
posé la question plus tôt ;-))

Merci encore.

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


Avatar
Anonyme
JPaul wrote:

Anonyme wrote:

Ou l'art de se prendre la tête quand des choses simples existent...

<http://www.versiontracker.com/dyn/moreinfo/macosx/12563>

gratuit, complet...


S'il fait effectivement tout ce qu'il dit faire, c'est génial.


Il fait...

Je n'ai malgré pas trouvé dans le descriptif, la fonction me disant le
chemin de l'image qui est en fond d'écran. Elle doit y être très
probablement (d'ailleurs tu me dis plus bas que tu l'utilises).


Quand tu l'ouvres, dans l'onglet Statut.

Je vais
voir ça immédiatement (d'ailleurs le téléchargement est déjà parti, 11
mn en 56K ;-).

Merci infiniment.


De rien...

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net <http://www.mosx.net/> *********


Avatar
Anonyme
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'utilise ChangeDestop... :-)


C'est donc sûr que je vais en faire autant !
Quel dommage que tu ne m'ai pas répondu plus tôt,


C'est vrai et j'en suis désolé...

et que je n'ai pas
posé la question plus tôt ;-))


C'est vrai aussi... Ca fait de nombreux mois (voir plus) que je
l'utilise avec joie...

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net <http://www.mosx.net/> *********



Avatar
blanc
Anonyme wrote:

S'il fait effectivement tout ce qu'il dit faire, c'est génial.


Il fait...


Effectivement. Et vraiment génial, et même Grand.

Adopté !
;-))

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


1 2 3 4