Ich habe eine große Bibliothek an PDF-Dokumenten (Papieren, Vorlesungen, Handouts), durch die ich schnell navigieren möchte. Dafür brauche ich Thumbnails.
Gleichzeitig sehe ich jedoch, dass der ~/.thumbnails
Ordner mit Daumen voll ist , die ich nicht wirklich brauche. Das Löschen von Thumbnails ohne Entfernen der wichtigen Thumbnails ist nicht möglich. Wenn ich sie löschen würde, müsste ich zu jedem Ordner mit wichtigen PDF-Dokumenten gehen und den Thumbnail-Cache neu generieren lassen.
Ich würde gerne in der Lage sein, diesen Prozess zu automatisieren. Kann ich nautilus auf irgendeine Weise anweisen, die Thumbs für eine Reihe bestimmter Verzeichnisse vorab im Cache zu speichern?
Hinweis : Ich habe eine Reihe von Bash-Skripten gefunden , die dies für Bilder und Videos zu tun scheinen, aber nicht für andere Dokumente. Vielleicht kann jemand, der Erfahrung mit Skripten hat, diese für PDF-Dokumente anpassen oder mich zumindest in die richtige Richtung weisen, was ich ändern muss, damit dies auch mit PDF-Dokumenten funktioniert.
Bearbeiten :
Die Antwort auf diese Frage war überwältigend. Lassen Sie mich zunächst allen danken, die an der Lösung dieses Problems mitgewirkt haben. Die Frage, ihre Antworten und die damit verbundene Diskussion sind ein gutes Beispiel dafür, wie die Zusammenarbeit vieler Parteien zu einer optimalen Lösung führen kann. Genau das macht Linux und Open Source so großartig.
Alle Antworten, die ich gegeben habe, hätten das Kopfgeld verdient, das ich ursprünglich für diese Frage ausgesprochen habe. Dennoch gibt es nur eine Prämie zu vergeben. Ich bin es allen zukünftigen Lesern schuldig, die Antwort zu wählen, die das Problem am effizientesten löst. Um herauszufinden, um welche Lösung es sich handelt, habe ich einen letzten Testlauf durchgeführt und die drei Skripte in Bezug auf Kompatibilität, Geschwindigkeit und Ausgabequalität verglichen. Hier sind die Ergebnisse:
Thumbnailer 1 , von rosch:
Kompatibilität : ✔ Leerzeichen in Dateinamen; ✔ Leerzeichen im Verzeichnisnamen; ✘ Freedesktop-konform
Geschwindigkeit : 95 PDFs in 12,6 Sek
Qualität : stock nautilus qualität
Zusätzliche Vorteile : 1.) überspringt automatisch Dateien mit bereits vorhandenen Thumbs; 2.) Keine zusätzlichen Pakete erforderlich
Thumbnailer 2 von Martin Orda:
Kompatibilität : ✔ Leerzeichen in Dateinamen; ✔ Leerzeichen im Verzeichnisnamen; ✘ Freedesktop-konform
Geschwindigkeit : 95 PDFs in 70,0 Sek
Qualität : Deutlich bessere Skalierung als die Bilder auf Lager.
Zusätzliche Vorteile : 1.) Überspringt automatisch Dateien mit bereits vorhandenen Thumbnails. 2.) Kompatibel mit einer Vielzahl von Bildformaten neben PDF. 3.) Plattformunabhängig, setzt nicht auf GNOME-Komponenten
Thumbnailer 3 von James Henstridge:
Kompatibilität : ✔ Leerzeichen in Dateinamen; ✔ Leerzeichen im Verzeichnisnamen; ✔ Freedesktop-konform
Geschwindigkeit : 95 PDFs in 10,8 Sek
Qualität : stock nautilus qualität
Zusätzliche Vorteile : 1.) Überspringt automatisch Dateien mit bereits vorhandenen Miniaturansichten. 2.) Kompatibel mit allen Dateiformaten, die von den vorinstallierten Miniaturansichten identifiziert werden
Alle drei Skripte sind ausgezeichnet. Jedes hat seine eigenen Vor- und Nachteile. Die Lösung von Rosch funktioniert sofort und ist möglicherweise die richtige Wahl für Benutzer mit einer minimalen Installation.
Martin Orda hat ein sehr vielseitiges Skript erstellt, das mit einer Vielzahl von Dateiformaten arbeitet und DE-unabhängig ist. Es zeichnet sich durch Miniaturbildqualität aus, geht jedoch zu Lasten der Geschwindigkeit.
Am Ende war es die James-Lösung, die am besten zu meinem Anwendungsfall passte. Es ist schnell, vielseitig und bietet die Möglichkeit, Dateien mit bereits vorhandenen Miniaturansichten zu überspringen.
Gesamtsieger: James Henstridge
Zusätzliche Informationen : Alle drei Skripte sind voll kompatibel mit Nautilus-Skripten . Sie können sie einfach nach diesem Tutorial installieren .
Edit 2 : Review mit verbessertem Script von rosch aktualisiert.
quelle
Antworten:
Die Miniaturansichtsroutinen von Nautilus stammen tatsächlich aus der
libgnome-desktop
Bibliothek, sodass es möglich ist, dieselben Miniaturansichten auch außerhalb des Dateimanagers auszuführen.Die API ist ein wenig komplex, aber das folgende Python-Skript sollte helfen:
Speichern Sie diese in eine Datei und markieren Sie sie als ausführbar. Möglicherweise müssen Sie das
gir1.2-gnomedesktop-3.0
Paket auch installieren , wenn es noch nicht installiert ist.Rufen Sie anschließend einfach das Skript mit den Dateien oder Ordnern auf, für die Sie eine Miniaturansicht als Argument erstellen möchten. Thumbnails werden dort gespeichert,
~/.thumbnails
wo Anwendungen wie Nautilus sie erwarten.quelle
48eebea785a185cdfc9d8f1a2ed34400.png
verwendet). Zu diesem Zeitpunkt scheint es jedoch keine Verzeichnisse zu unterstützen. Gibt es eine Möglichkeit, Verzeichnisse rekursiv zu durchlaufen?Das folgende Skript sollte den Job erledigen. Es verwendet
evince-thumbnailer
die - soweit ich weiß - mit jeder Gnome-Installation und ist die Standard-Miniaturansicht.Speichern unter
pdfthumbnailer.sh
und ausführbar machen.Verwendung :
pdfthumbnailer.sh dir1 [dir2, ...]
Einschränkung :
evince-thumbnailer
tut. Mit anderen Worten, solange Nautilus die Thumbnails nicht neu generiert, kann das Skript für den Job verwendet werden.Anmerkungen :
evince-thumbnailer
undconvert
(von imagemagick): 3 sekunden fürevince-thumbnailer
und 14 sekunden fürconvert
.perl
in einer Standardinstallation vorhanden seinevince-thumbnailer
geben einfach einen Fehler aus, der mit stummgeschaltet wurde2>/dev/null
/usr/share/thumbnailers/evince.thumbnailer
, um eine Liste der behandelten Dateitypen anzuzeigen~/.cache/thumbnails
.Robuster Pfade mit
readlink
.Inspiration :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683394
quelle
2a43dc2774e3dfe45a4337e0304e5b0a.png
. Dies ist , wie die gleiche Thumbnail wird von nautilus genannt:48eebea785a185cdfc9d8f1a2ed34400.png
. Mir ist auch aufgefallen, dass mit Ihrem Skript erstellte Thumbnails 128x171px groß sind, während der eingebaute Thumbnailer nur Thumbnails mit 96x128px erstellt.evince-thumbnailer
, die PNG-Tags nicht hinzuzufügen, ist das richtig: Der Code, der die externen Miniaturansichten aufruft, schreibt die Bilder tatsächlich so um, dass sie die Tags enthalten. Sie sollten dies überprüfen können, indem Siestrings -a
eine der von Nautilus generierten Miniaturansichten ausführen.War eine Weile abgelenkt und rosch hat mich geschlagen :) Wusste nicht, dass es evince-thumbnailer gibt (ich bin kein Gnome-Benutzer), aber trotzdem, da ich es bereits geschrieben habe, geht es los. Es setzt voraus, dass imagemagick installiert, überprüft und installiert ist, falls nicht vorhanden mit:
Speichern Sie es als
mkthumb.sh
(zum Beispiel)chmod +x mkthumb.sh
und führen Sie es mit absoluten Pfaden als Argumente aus (Sie können -s als ersten Parameter verwenden, um die Erzeugung bereits vorhandener Miniaturansichten zu überspringen).Das Skript (Ich habe es leicht modifiziert, um die meisten Bilder zu unterstützen. Sie können weitere Erweiterungen hinzufügen, wenn Sie sie benötigen.):
Es behandelt Dateien mit Leerzeichen im Namen ohne Probleme.
quelle
2a43dc2774e3dfe45a4337e0304e5b0a.png
während Nautilus es als benennt48eebea785a185cdfc9d8f1a2ed34400.png
. Die Dimensionen stimmen jedoch mit Ihrem Skript überein. Hier ist ein Vergleichimagemagick
scheint auch viel besser mit Skalierung umzugehen alsevince-thumbnailer
(siehe Vergleich oben als Referenz).Die Miniaturbildspezifikation enthält freigegebene Miniaturbild-Repositorys, mit denen vorab generierte Miniaturbilder zusammen mit den zugehörigen Dateien verteilt werden können, anstatt dass jeder Benutzer sein eigenes Miniaturbild generiert. Theoretisch könnten Sie Thumbnails generieren und dann zu einem gemeinsam genutzten Repository hinzufügen, sodass Sie sie künftig nicht mehr generieren müssen, wenn Sie Ihr Thumbnails-Verzeichnis geleert oder alle auf einen anderen Computer oder was auch immer verschoben haben.
http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY
Diese Ask Ubuntu-Seite wurde in den Suchergebnissen angezeigt, als ich herausfinden wollte, ob eine Anwendung freigegebene Miniaturansichten-Repositorys unterstützt. Leider scheint sie keine Anwendung zu unterstützen.
quelle
Ich habe ein Paket geschrieben, das James 'Skript so modifiziert hat, dass es Multiprocessing und die Option zum rekursiven Generieren von Thumbnails enthält. Das Paket ist
pip
-installierbar. Prüfen Sie hier für Installationsanweisungen.Ein Anwendungsbeispiel ist:
-r
: Generiere rekursiv Thumbnails-w
: Anzahl der zu verwendenden Kernequelle