Tengo una gran biblioteca de documentos PDF (documentos, conferencias, folletos) por los que quiero poder navegar rápidamente. Para eso necesito miniaturas.
Al mismo tiempo, sin embargo, veo que la ~/.thumbnails
carpeta se está acumulando con los pulgares que realmente no necesito. Eliminar basura en miniatura sin eliminar los pulgares importantes es imposible. Si tuviera que eliminarlos, tendría que ir a todas y cada una de las carpetas con documentos PDF importantes y dejar que se regenere el caché de miniaturas.
Me encantaría poder automatizar este proceso. ¿Hay alguna forma de decirle a Nautilus que guarde previamente los pulgares para un conjunto de directorios dados?
Nota : Encontré un conjunto de scripts de bash que parecen hacer esto para imágenes y videos, pero no para ningún otro documento. Tal vez alguien con más experiencia en secuencias de comandos pueda ajustar estos para documentos PDF o al menos señalarme en la dirección correcta sobre lo que tendría que modificar para que esto funcione también con documentos PDF.
Editar :
La respuesta a esta pregunta ha sido bastante abrumadora. Permítanme primero agradecer a todos los que participaron en la resolución de esto. La pregunta, sus respuestas y toda la discusión en torno a ella son un gran ejemplo de cómo el esfuerzo de colaboración de muchas partes puede conducir a una solución óptima. Esto es exactamente lo que hace que Linux y Open Source sean tan geniales.
Todas las respuestas proporcionadas merecerían la recompensa que originalmente ofrecí por esta pregunta. Aún así, solo hay una recompensa para otorgar. A todos los futuros lectores les debo elegir la respuesta que resuelva el problema de la manera más eficiente. Para determinar qué solución es, realicé una prueba final, comparando los tres scripts en compatibilidad, velocidad y calidad de salida. Aquí están los resultados:
Miniatura 1 , por rosch:
Compatibilidad : ✔ espacios en el nombre del archivo; ✔ espacios en el nombre del directorio; ✘ compatible con freedesktop
Velocidad : 95 archivos PDF en 12,6 segundos
Calidad : calidad de stock nautilus
Beneficios adicionales : 1.) omite automáticamente los archivos con los pulgares preexistentes; 2.) No se necesitan paquetes adicionales
Miniatura 2 , por Martin Orda:
Compatibilidad : ✔ espacios en el nombre del archivo; ✔ espacios en el nombre del directorio; ✘ compatible con freedesktop
Velocidad : 95 archivos PDF en 70,0 segundos
Calidad : escalamiento significativamente mejor que las imágenes de stock.
Beneficios adicionales : 1.) omite automáticamente los archivos con los pulgares preexistentes 2.) compatible con una amplia gama de formatos de imagen además de PDF 3.) independiente de la plataforma, no se basa en componentes GNOME
Miniatura 3 , de James Henstridge:
Compatibilidad : ✔ espacios en el nombre del archivo; ✔ espacios en el nombre del directorio; ✔ compatible con freedesktop
Velocidad : 95 archivos PDF en 10,8 segundos
Calidad : calidad de stock nautilus
Beneficios adicionales : 1.) omite automáticamente los archivos con los pulgares preexistentes 2.) compatible con todos los formatos de archivo identificados por los miniaturas preinstalados
Los tres guiones son excelentes. Cada uno tiene su conjunto distintivo de ventajas y desventajas. La solución de Rosch funciona de inmediato y podría ser la opción correcta para los usuarios con una instalación mínima.
Martin Orda creó un script muy versátil que funciona con una variedad de formatos de archivo y es independiente de DE. Se destaca en calidad de miniatura, pero lo hace a expensas de la velocidad.
Al final fue la solución de James la que mejor se ajustaba a mi caso de uso. Es rápido, versátil y ofrece las opciones para omitir archivos con miniaturas preexistentes.
Ganador general: James Henstridge
Información adicional : Los tres scripts son totalmente compatibles con nautilus-scripts . Puede instalarlos fácilmente siguiendo este tutorial .
Edición 2 : Revisión actualizada con guión mejorado de rosch.
fuente
Respuestas:
Las rutinas de miniaturas de Nautilus en realidad provienen de la
libgnome-desktop
biblioteca, por lo que es posible ejecutar las mismas miniaturas fuera del administrador de archivos.La API es un poco compleja, pero el siguiente script de Python debería ayudar:
Guarde esto en un archivo y márquelo como ejecutable. Es posible que también necesite instalar el
gir1.2-gnomedesktop-3.0
paquete si aún no está instalado.Después de eso, simplemente invoque el script con los archivos o carpetas que desea en miniatura como argumentos. Las miniaturas se guardarán
~/.thumbnails
donde las aplicaciones como Nautilus esperan encontrarlas.fuente
48eebea785a185cdfc9d8f1a2ed34400.png
se utiliza el nombre de archivo correcto ). En este punto, sin embargo, no parece admitir directorios. ¿Hay alguna forma en que puedas hacer que revise directorios de manera recursiva?El siguiente script debería hacer el trabajo. Utiliza lo
evince-thumbnailer
que, hasta donde yo sé, viene con cada instalación de gnome y es la miniatura predeterminada.Guardar como
pdfthumbnailer.sh
y hacerlo ejecutable.Uso :
pdfthumbnailer.sh dir1 [dir2, ...]
Restriccion :
evince-thumbnailer
esté haciendo. En otras palabras ... siempre y cuando nautilus no regenere las miniaturas, el script puede usarse para el trabajo.Notas :
evince-thumbnailer
yconvert
(de imagemagick): 3 segundos paraevince-thumbnailer
y 14 segundos paraconvert
.perl
, presente en una instalación predeterminadaevince-thumbnailer
simplemente generarán un error, silenciado con2>/dev/null
/usr/share/thumbnailers/evince.thumbnailer
para ver una lista de los tipos de archivos manejados~/.cache/thumbnails
.Rutas más robustas utilizando
readlink
.Inspiración :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683394
fuente
2a43dc2774e3dfe45a4337e0304e5b0a.png
. Esta es la forma en la misma miniatura es nombrado por Nautilus:48eebea785a185cdfc9d8f1a2ed34400.png
. También he notado que los pulgares creados con su secuencia de comandos son 128x171px, mientras que la miniatura incorporada solo crea 96x128px miniaturas.evince-thumbnailer
no agregar las etiquetas PNG, eso es correcto: el código que llama a las miniaturas externas en realidad reescribe las imágenes para incluir las etiquetas. Debería poder verificar esto ejecutandostrings -a
una de las miniaturas generadas por Nautilus.Me distraje por un tiempo y Rosch me ganó :) No sabía que existía una miniaturas (no soy un usuario de Gnome) pero de todos modos, como ya lo he escrito, aquí está. Requiere imagemagick instalado, verifique e instale si no está allí con:
Guardar como
mkthumb.sh
(por ejemplo),chmod +x mkthumb.sh
y ejecutarlo con rutas absolutas como argumentos (puede usar -s como su primer parámetro para omitir la generación de miniaturas que ya existen), es decir:El script (lo he modificado ligeramente para admitir la mayoría de las imágenes, puede agregar más extensiones si las necesita):
Maneja archivos con espacios en sus nombres sin problemas.
fuente
2a43dc2774e3dfe45a4337e0304e5b0a.png
mientras que nautilus lo nombra como48eebea785a185cdfc9d8f1a2ed34400.png
. Las dimensiones, sin embargo, son correctas con su script. Aquí hay una comparaciónimagemagick
También parece manejar la escala mucho mejor queevince-thumbnailer
(ver la comparación anterior para referencia).La especificación de miniaturas incluye repositorios de miniaturas compartidas, que permiten que las miniaturas de pregeneración se distribuyan junto con los archivos asociados en lugar de que cada usuario genere su propia miniatura. Entonces, en teoría, podría generar miniaturas y luego agregarlas a un repositorio compartido, eliminando así la necesidad de generarlas en el futuro si borró su directorio de miniaturas o las movió a una máquina diferente o lo que sea.
http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY
Esta página de Ask Ubuntu aparece en los resultados de una búsqueda cuando intentaba averiguar si alguna aplicación admite repositorios de miniaturas compartidas. Lamentablemente, parece que ninguna aplicación los admite.
fuente
Escribí un paquete que modificó el script de James para incluir multiprocesamiento y la opción de generar miniaturas de forma recursiva. El paquete es
pip
-instalable. Consulte aquí las instrucciones de instalación.Un ejemplo de uso es:
-r
: generar recursivamente miniaturas-w
: número de núcleos a utilizarfuente