J'ai une grande bibliothèque de documents PDF (documents, conférences, documents) que je veux pouvoir parcourir rapidement. Pour cela, j'ai besoin de vignettes.
En même temps, je constate cependant que le ~/.thumbnails
dossier s’empile de pouces dont je n’ai pas vraiment besoin. Il est impossible de supprimer des fichiers inutiles sans supprimer les pouces importants. Si je devais les supprimer, je devrais accéder à chaque dossier contenant des documents PDF importants et laisser le cache de vignettes se régénérer.
J'aimerais pouvoir automatiser ce processus. Existe-t-il un moyen de dire à Nautilus de pré-mettre en cache les pouces pour un ensemble de répertoires donnés?
Remarque : j'ai trouvé un ensemble de scripts bash qui semblent le faire pour les images et les vidéos, mais pour aucun autre document. Peut-être qu'une personne plus expérimentée en scripts pourra-t-elle les ajuster pour les documents PDF ou au moins me diriger dans la bonne direction sur ce que je devrais modifier pour que cela fonctionne également avec les documents PDF.
Modifier :
La réponse à cette question a été assez impressionnante. Permettez-moi d'abord de remercier tous ceux qui ont participé à la résolution de ce problème. La question, ses réponses et toutes les discussions autour de celle-ci sont un excellent exemple de la manière dont les efforts de collaboration de nombreuses parties peuvent aboutir à une solution optimale. C'est exactement ce qui rend Linux et l'Open Source si formidables.
Toutes les réponses fournies mériteraient la prime que j'ai initialement mise en place pour cette question. Pourtant, il n'y a qu'une prime à attribuer. Je dois à tous les futurs lecteurs de choisir la réponse qui résout le problème de la manière la plus efficace. Pour déterminer la solution, j'ai effectué un dernier test en comparant les trois scripts en termes de compatibilité, de rapidité et de qualité de sortie. Voici les résultats:
Thumbnailer 1 , par Rosch:
Compatibilité : ✔ espaces dans le nom du fichier; ✔ espaces dans le nom du répertoire; Compl conforme à freedesktop
Vitesse : 95 PDF en 12,6 secondes
Qualité : qualité stock nautile
Avantages supplémentaires : 1.) ignore automatiquement les fichiers avec des vignettes préexistantes; 2.) Aucun paquet supplémentaire nécessaire
Thumbnailer 2 , de Martin Orda:
Compatibilité : ✔ espaces dans le nom du fichier; ✔ espaces dans le nom du répertoire; Compl conforme à freedesktop
Vitesse : 95 PDF en 70,0 sec
Qualité : mise à l'échelle nettement meilleure que celle des images de stock.
Autres avantages : 1.) saute automatiquement les fichiers avec des pouces préexistants 2.) compatible avec une large gamme de formats d'image en plus de PDF 3.) indépendant de la plate-forme, ne repose pas sur des composants GNOME
Thumbnailer 3 , de James Henstridge:
Compatibilité : ✔ espaces dans le nom du fichier; ✔ espaces dans le nom du répertoire; ✔ conforme à freedesktop
Vitesse : 95 PDF en 10,8 secondes
Qualité : qualité stock nautile
Avantages supplémentaires : 1.) Ignore automatiquement les fichiers avec des vignettes préexistantes. 2.) Compatible avec tous les formats de fichiers identifiés par les vignettes préinstallées.
Les trois scripts sont excellents. Chacun a ses avantages et ses inconvénients. La solution de Rosch fonctionne immédiatement et peut constituer le bon choix pour les utilisateurs nécessitant une installation minimale.
Martin Orda a créé un script très polyvalent qui fonctionne avec une variété de formats de fichiers et qui est indépendant de DE. Il excelle par la qualité des vignettes mais aux dépens de la rapidité.
En fin de compte, c'est la solution de James qui convient le mieux à mon cas d'utilisation. Rapide, polyvalent, il offre la possibilité de sauter des fichiers contenant des vignettes préexistantes.
Vainqueur: James Henstridge
Informations complémentaires : Les trois scripts sont entièrement compatibles avec les scripts Nautilus . Vous pouvez facilement les installer en suivant ce tutoriel .
Éditer 2 : Avis mis à jour avec un script amélioré par rosch.
la source
Réponses:
Les routines de vignettes de Nautilus proviennent en fait de la
libgnome-desktop
bibliothèque. Il est donc possible d'exécuter les mêmes vignettes en dehors du gestionnaire de fichiers.L'API est un peu complexe, mais le script Python suivant devrait vous aider:
Enregistrez ceci dans un fichier et marquez-le comme exécutable. Vous devrez peut-être également installer le
gir1.2-gnomedesktop-3.0
package s'il n'est pas déjà installé.Après cela, appelez simplement le script avec les fichiers ou les dossiers que vous souhaitez imaginer en tant qu'arguments. Les miniatures seront enregistrées
~/.thumbnails
là où des applications telles que Nautilus s'attendent à les trouver.la source
48eebea785a185cdfc9d8f1a2ed34400.png
est utilisé). À ce stade, cependant, il ne semble pas prendre en charge les répertoires. Pourriez-vous le faire passer récursivement dans les répertoires?Le script ci-dessous devrait faire le travail. Il utilise
evince-thumbnailer
qui - pour autant que je sache - Avec chaque installation de GNOME et est le thumbnailer par défaut.Enregistrer sous
pdfthumbnailer.sh
et le rendre exécutable.Utilisation :
pdfthumbnailer.sh dir1 [dir2, ...]
Restriction :
evince-thumbnailer
. En d'autres termes ... tant que nautilus ne régénère pas les vignettes, le script peut être utilisé pour le travail.Notes :
evince-thumbnailer
etconvert
(de imagemagick): 3 secondes pourevince-thumbnailer
et 14 secondes pourconvert
.perl
, présents dans une installation par défautevince-thumbnailer
simplement une erreur - en sourdine2>/dev/null
/usr/share/thumbnailers/evince.thumbnailer
pour voir une liste des types de fichiers traités~/.cache/thumbnails
.Des chemins plus robustes utilisant
readlink
.Inspiration :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683394
la source
2a43dc2774e3dfe45a4337e0304e5b0a.png
. Voici comment la même vignette est nommé par nautilus:48eebea785a185cdfc9d8f1a2ed34400.png
. J'ai également remarqué que les vignettes créées avec votre script ont une taille de 128x171 pixels alors que le miniature intégré ne crée que des vignettes de 96 x 128 pixels.evince-thumbnailer
ajout des balises PNG, c’est exact: le code qui appelle les vignettes externes réécrit les images pour inclure les balises. Vous devriez pouvoir le vérifier en exécutant l'strings -a
une des miniatures générées par Nautilus.J'ai été distrait pendant un moment et Rosch m'a battu. Je ne savais pas qu'il existait un éditeur de vignettes (je ne suis pas un utilisateur de Gnome), mais de toute façon, puisque je l'ai déjà écrit, ça y est. Imagemagick doit être installé, vérifiez et installez-le s'il ne contient pas:
Enregistrez sous
mkthumb.sh
(par exemple),chmod +x mkthumb.sh
et exécutez-le avec des chemins absolus comme arguments (vous pouvez utiliser -s en tant que premier paramètre pour éviter de générer des vignettes existantes), c'est-à-dire:Le script (je l'ai légèrement modifié pour prendre en charge la plupart des images, vous pouvez ajouter d'autres extensions si vous en avez besoin):
Il gère les fichiers avec des espaces dans leurs noms sans problèmes.
la source
2a43dc2774e3dfe45a4337e0304e5b0a.png
pendant que nautilus le nomme48eebea785a185cdfc9d8f1a2ed34400.png
. Les dimensions, cependant, sont correctes avec votre script. Voici une comparaisonimagemagick
semble également gérer la mise à l’échelle bien mieux queevince-thumbnailer
(voir la comparaison ci-dessus pour référence).La spécification de vignettes comprend des référentiels de vignettes partagées, qui permettent de distribuer les vignettes de pré-génération avec les fichiers associés au lieu de laisser chaque utilisateur générer sa propre vignette. Donc, en théorie, vous pouvez générer des vignettes, puis les ajouter à un référentiel partagé, éliminant ainsi la nécessité de les générer à l'avenir si vous effacez votre répertoire de vignettes ou si vous les déplacez tous vers un autre ordinateur.
http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY
Cette page Ask Ubuntu apparaît dans les résultats d'une recherche lorsque j'essayais de déterminer si une application prenait en charge les référentiels de miniatures partagés. Malheureusement, il semble qu'aucune application ne les supporte.
la source
J'ai écrit un package qui modifiait le script de James pour inclure le multitraitement et l'option permettant de générer de manière récursive des vignettes. Le paquet est
pip
-installable. Vérifiez ici pour les instructions d'installation.Un exemple d'utilisation est:
-r
: générer récursivement des vignettes-w
: nombre de cœurs à utiliserla source