Benutzerdefinierte Miniaturansichten funktionieren unter Ubuntu 18.10 und 18.04 nicht

7

Kürzlich hatte ich eine Reihe meiner eigenen Skripte für die Miniaturansichten in Nautilus: WebP-Vorschau , Sound-Wellenformen , Office-Dokumente und so weiter.

Es scheint, als ob ich entweder etwas falsch mache (Verhalten bei der Generierung von Miniaturansichten geändert) oder benutzerdefinierte Miniaturansichten in der neuesten Version von GNOME überhaupt nicht funktionieren, selbst in meinen vorherigen Skripten, die in früheren Versionen von Ubuntu reibungslos funktionierten.

Ich habe einige Nachforschungen angestellt, versucht, ein einfaches Skript auszuführen (siehe unten), und es hat nicht funktioniert.

Mein Test-Thumbnailer in /usr/share/thumbnailers/z.thumbnailer:

[Thumbnailer Entry]
Exec=/home/maximal/thumb.sh %s %i %u %o
MimeType=image/webp;image/x-webp

Wo /home/maximal/thumb.shist:

#!/bin/bash
echo $0 >> /home/maximal/thumb.log
echo $1 >> /home/maximal/thumb.log
echo $2 >> /home/maximal/thumb.log
echo $3 >> /home/maximal/thumb.log
echo $4 >> /home/maximal/thumb.log

Wenn ich dann den Miniaturbild-Cache entferne rm -rf ~/.cache/thumbnailsund Nautilus neu starte nautilus -q, enthält meine Protokolldatei nichts und ~/.cache/thumbnails/fail/gnome-thumbnail-factoryenthält alle fehlgeschlagenen Daumen (sieht aus wie beschädigte / leere PNGs):

Miniaturbilddatei fehlgeschlagen

Anscheinend hat Nautilus also nicht einmal versucht, mein Thumbnailer-Skript auszuführen. Wenn ich versuche, den Daumenbefehl selbst auszuführen, funktioniert er einwandfrei. Zum Beispiel convertdurch cwebp|dwebpPaket:

convert -thumbnail 256x256 file.webp png:file.webp.png

Wenn ich diesen Befehl in eine Miniaturansicht einbinde, wurde er anscheinend nicht einmal von Nautilus ausgeführt.

[Thumbnailer Entry]
Exec=convert -thumbnail %sx%s %i png:%o
MimeType=image/webp;image/x-webp;

Genau die gleiche Situation tritt bei anderen meiner Miniaturansichten auf: Audio-Wellenformen, Office-Dokumente, Photoshop-Dateien und so weiter.

Könnte jemand helfen?

Sasha MaximAL
quelle
18.04 hinzugefügt, da die dies verursachende Verhärtung zurückportiert wurde
Rmano
Ich habe einen Fehler geöffnet: bugs.launchpad.net/ubuntu/+source/gnome-desktop3/+bug/1808702
Rmano
sasha-maximal, @ jacek-kluza, das Markieren des oben genannten Fehlers mit "affektiere mich auch" wird es bestätigen und die Aufmerksamkeit der Entwickler auf sich ziehen ...
Rmano

Antworten:

5

Ich habe mit einigen meiner externen Miniaturansichten die gleichen Probleme gehabt.

Nach einigen Recherchen wurde mir klar, dass der Bubblewarp-Aufruf unter Ubuntu- und Debian-basierten Distributionen aufgrund der Option --symlink für / bin und / sbin fehlschlägt . Tatsächlich werden unter diesen Distributionen / bin und / usr / bin nicht zusammengeführt. Daher sollten beide mit --ro-bind anstelle von --symlink deklariert werden.

Damit der bwrap- Aufruf von Nautilus unter Ubuntu funktioniert, müssen Sie --symlink-Aufrufe durch --ro-bind-Aufrufe für / bin und / sbin ersetzen

Um das Geschwindigkeitsproblem mit Miniaturansichten mithilfe von Imagemagick-Tools zu lösen, müssen Sie außerdem eine --ro-Bindung für / etc / alternatives und / var / cache / fontconfig hinzufügen

Die einfachste Lösung besteht also darin, ein Wrapper-Skript unter / usr / local / bin / bwrap zu platzieren, das die Aufgabe übernimmt, und dann original / usr / bin / bwrap aufzurufen. Da / usr / local / bin im PATH vor / usr / bin steht, ist es für Nautilus transparent.

Wrapper-Skript ist auf meinem Github-Repo verfügbar

Ich habe einen kleinen Artikel geschrieben, um alles im Detail zu erklären und Anweisungen zur Installation des Wrapper-Skripts bereitzustellen. Es wurde unter 18.04 und 18.10 getestet

http://bernaerts.dyndns.org/linux/360-ubuntu-nautilus-external-thumbnailer-failure

Ich hoffe es hilft

Nicolas Bernaerts
quelle
Interessant. Die Symlink-Probleme sollten behoben sein, siehe den Quellcode, den ich oben verlinkt habe, aber jetzt, wo ich darüber nachdenke, bin ich mir nicht sicher, ob er auf Ubuntu übertragen wurde. Überprüft Ihren Vorschlag. Übrigens, auf jeden Fall sollten Sie auch ein binf hinzufügen /etc/alternatives... Siehe meinen Fehlerbericht ... Danke!
Rmano
Dies ist der Patch, den ich erwähnt habe gitlab.gnome.org/GNOME/gnome-desktop/commit/…
Rmano
Ok: getestet und es hat funktioniert. Das Problem ist also, dass der obige Patch noch nicht zu Ubuntu hinzugefügt wurde. Ich werde dies in meinem Bugreport melden; Bitte melden Sie sich an, wenn Sie können. Und wenn Sie Zeit haben, vervollständigen Sie diese Antwort bitte, damit sie etwas informativer ist. Es hat mein Problem gelöst, also werde ich das Kopfgeld gewähren.
Rmano
Wenn Sie die letzte Zeile Ihres bwrap-Skripts ändern, /usr/bin/bwrap --ro-bind /etc/alternatives /etc/alternatives --ro-bind /var/cache/fontconfig /var/cache/fontconfig "${ARR_PARAM[@]}"um dieses Problem zu lösen, lösen Sie die /etc/alternativeseine und die enorme Verlangsamung der Schriftgenerierung ...
Rmano
7

Ich verwende 18.04, aber nach dem Update 2018.11.28 hatte ich das gleiche Problem. Es wird durch Sandboxing Thumbnailer mit Luftpolsterfolie verursacht (es hat mich 2 Tage Forschung gekostet !!!).

Also ich herabgestuft gnome-desktop3-data, gir1.2-gnomedesktop-3.0, libgnome-desktop-3-17(nicht sicher , ob alle 3 erforderlich) und dann entfernt bubblewrap.

Es ist ein schmutziger Hack und es schwächt die Sicherheit, aber es ist mir egal ...

Vielleicht wird es am 18.10 nicht so einfach.

Ich hoffe jemand kann eine bessere Lösung schreiben ...

Jacek Kluza
quelle
2
BEEINDRUCKEND! Sie haben großartige Nachforschungen angestellt. Ich habe einige Tage verbracht, aber das Problem nicht herausgefunden.
Sasha MaximAL
1
Dies wird durch bugs.launchpad.net/ubuntu/+source/gnome-desktop3/+bug/1795668 verursacht . Ich habe dort nach einer korrekten Lösung gefragt, mal sehen ... es ist wahrscheinlich eine Frage des Verständnisses, wie man sichere Miniaturansichten schreibt.
Rmano
0

Ich verwende 18.04 und konnte die Lösung mit dem bwrap-Skript nicht zum Laufen bringen. Ich habe irgendwo in meinem Heimatpfad eine Miniaturansicht, die unter 16.04 funktioniert. Ich kann es in 18.04 lösen, indem ich dieses Programm in / usr / bin lege.

oscar1919
quelle