Apercu du dossier dans Konqueror
Par eMerzh le mardi 28 août 2007, 11:26 - Lien permanent
Beaucoup de gens arrive sur mon blog depuis le célèbre moteur de recherche en cherchant comment mettre une image en aperçu d'un dossier dans konqueror.
J'utilise cette technique pour gérer ma collection musicale et mes photos un peu comme ici.
Il suffit en fait de créer un fichier .directory dans le dossier concerné et d'y inclure le code suivant :
[Desktop Entry] Icon=./cover.png
Où cover.png est l'image à mettre en aperçu... . Ceci ne marche qu'avec les fichier .png, pour les autres types comme jpg, ... il faudra convertir avant avec convert par exemple
Pour effectuer cette tâche plus facilement, on peu également utiliser les "Services Menu" de konqueror en ajoutant dans "~/.kde/share/apps/konqueror/servicemenus" un fichier previewDir.desktop ressemblant à :
[Desktop Entry] Actions=DirApercu Encoding=UTF-8 ServiceTypes=image/png [Desktop Action DirApercu] Exec=echo "[Desktop Entry]\nIcon=./`basename %u`" > `dirname %u`/.directory Name=Set this file as directory preview Name[fr]=Mettre l'image en aperçu du dossier Icon=insert-image
Maintenant lorsque vous cliquez droit sur un fichier .png dans le sous-menu action une entrée vous propose de "Mettre l'image en aperçu du dossier".
Commentaires
Sympa ton service menu.
A noter qu'Amarok le fait pour la discothèque avec son script indispensable Copy Cover.
PS : Archie Kramer c'est sans jeu d'mot ?
Ne pourrait-on pas, par exemple grâce à ImageMagick, utiliser aussi les .jpg en effectuant la conversion en .png durant la même opération ?
Slt !
Je voulais juste savoir si cela reviens à la même chose que de changer l'icone du dossier depuis la fenêtre d'information du dossier.
Merci pour le script
En attendant je me suis permis un petit script bash pour automatiser la chose:
- Choix automatiquement de la première image jpeg du dossier
- Redimensionnement de l'image pour créer une miniature
- Conversion en .png
- Création de l'aperçu du dossier
---------Début Script--------
#!/bin/bash
IMAGE=`ls *.jpg | head -n 1`
convert "$IMAGE" -thumbnail x200 -resize '200x<' -resize 50% -gravity center -crop 100x100+0+0 cover.png
touch .directory
echo "[Desktop Entry]" > .directory
echo "Icon=./cover.png" >> .directory
---------Fin Script--------
Script à lancer dans le répertoire en question. Mais rien n'empêche de le modifier pour affecter l'ensemble des sous-dossiers.
Je me permet de re-poster un complément au script précédant. Il permet, comme avant, un choix automatique de la première image, mais aussi la possibilité de choisir une image en argument. Exemple: ./monScript.sh monImagePref.jpg
Je n'ai malheureusement pas encore trouvé de manière simple pour automatiser la tâche dans les sous-dossiers... si quelqu'un a une idée ???
#**************************debut du script******************************
#!/bin/bash
#Si aucun paramètre n'a été entré, on prend la première image
if test -z "$1" ;
then
IMAGE=`ls | grep .jpg | head -n 1`
if test -z "$IMAGE" ;
then
exit 0
fi
#Sinon on prend l'image entrée en paramètre
else
IMAGE=$1
fi
# Création de la miniature
convert "$IMAGE" -thumbnail x200 -resize '200x<' -resize 50% -gravity center -crop 100x100+0+0 cover.png
# Création de l'aperçu
touch .directory
echo "[Desktop Entry]" > .directory
echo "Icon=./cover.png" >> .directory
#**************************fin du script********************************
Rappel: pour pouvoir utiliser le script dans tous les dossiers sans devoir le copier, il suffit de le placer (en root) dans le dossier /usr/local/bin/
Et la même chose dans Nautilus, possible ? (c'est ce que je cherche depuis pas mal de temps
On peu p-e cherche du côté d'un truc comme ca :
find /media/sda2/share/ -type f -name "cover.png" | while read i;
do
B=`dirname "$i"`;
F=`basename "$i"`;
echo "[Desktop Entry]
Icon=./$F" > "$B/.directory" ;
done
@ eMerzh:
C'est une bonne idée, mais ça nécessite d'avoir dans chaque dossier le fichier cover.png déjà présent. Le mieux serait de parcourir tous les dossiers pour créer un fichier cover.png si le dossier contient une ou des images.
Et pour finir, voilà ce que devient le fichier previewDir.desktop si l'on désire utiliser le script décrit précédemment. Cela permet de faire un clic droit sur n'importe quelle image (.jpg ou .png) et d'en faire un "aperçu dossier"
[Desktop Entry]
Actions=DirApercu
Encoding=UTF-8
ServiceTypes=image/*
[Desktop Action DirApercu]
Exec=(cd %d && scriptCoverImage.sh %n)
Name=Set this file as directory preview
Name[fr]=Mettre l'image en aperçu du dossier
Icon=insert-image
Merci encore à l'auteur de l'article... je suis bien heureux d'avoir pu découvrir cette fonctionnalité dans konqueror.
Sinon y'a le greffon "CopyCover" pour Amarok qui fait ça tout seul
Whaou !
Je cherchais quelque chose de ce genre depuis longtemps ...
En fait, depuis mon arrivée sur linux , pas si longtemps donc !
Avec convert, y a t il un moyen de copier 2 images dans une seule ?
la première, un "modèle" de dossier, ou de boitier CD,
la deuxième, la pochette
Cela permet d'avoir une différence entre un dossier d'album et des images en général
autre petite question,
la taille 200x200, c'est arbitraire ou cela corresponds à un standard sous linux ?
(mes folder.jpg sont tous en 300x300)