web-dev-qa-db-fra.com

Les imageurs personnalisés ne fonctionnent pas sous Ubuntu 18.10 et 18.04

Récemment, j'avais mes propres scripts pour les vignettes dans Nautilus: aperçus WebP , formes d'onde sonores , documents bureautiques, etc.

On dirait que je fais quelque chose de mal (le comportement de génération de vignettes a changé) ou que les vignettes personnalisées ne fonctionnent pas du tout dans GNOME dernier, même dans mes scripts précédents, qui fonctionnaient sans problème dans les versions précédentes d’Ubuntu.

J’ai fait des recherches, essayé d’exécuter un script simple (voir ci-dessous) et cela n’a pas marché.

Mon imageur de test dans /usr/share/thumbnailers/z.thumbnailer:

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

/home/maximal/thumb.sh est:

#!/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

Ensuite, lorsque je supprime le cache de vignettes rm -rf ~/.cache/thumbnails et que je redémarre Nautilus nautilus -q, mon fichier journal ne contient rien et ~/.cache/thumbnails/fail/gnome-thumbnail-factory contient tous les vignettes échoués (qui ressemblent à des fichiers PNG corrompus/vides):

Failed thumbnail file

Donc, apparemment, Nautilus n’a même pas essayé d’exécuter mon script thumbnailer. Lorsque j'essaie d'exécuter la commande thumb elle-même, cela fonctionne parfaitement. Par exemple, convert à cwebp|dwebp package:

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

Lorsque j'emballe cette commande dans un imageur, il semble que Nautilus ne l'ait même pas demandé.

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

La même situation se produit avec les autres imagettes: les formes d'onde audio, les documents bureautiques, les fichiers Photoshop, etc.

Quelqu'un pourrait-il aider?

7
Sasha MaximAL

J'ai rencontré le même problème avec certains de mes vignettes externes.

Après quelques recherches, j'ai réalisé que l'appel bubblewarp échouait sous les distributions basées sur Ubuntu et Debian en raison de l'option - symlink sur /bin et /sbin . En fait, sous ces distributions,/bin et/usr/bin ne sont pas fusionnés. Donc, les deux doivent être déclarés avec - ro-bind au lieu de --symlink.

Pour effectuer un appel bwrap à partir de Nautilus sous Ubuntu, vous devez remplacer les appels --symlink par des appels --ro-bind pour/bin et/sbin

Pour résoudre le problème de vitesse avec les vignettes utilisant les outils imagemagick, vous devez également ajouter un --ro-bind pour/etc/alternatives et/var/cache/fontconfig

Donc, la solution la plus simple est de placer un script wrapper sous /usr/local/bin/bwrap qui fera le travail et appellera ensuite le répertoire/usr/bin original./bwrap. Comme/usr/local/bin est avant/usr/bin dans PATH, il est transparent pour Nautilus.

Le script Wrapper est disponible sur mon rapport Github

J'ai écrit un petit article afin d'expliquer tous les détails et de fournir des instructions pour l'installation de scripts wrapper. Il a été testé sous 18.04 et 18.10.

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

J'espère que ça aide

5
Nicolas Bernaerts

J'utilise 18.04, mais après la mise à jour 2018.11.28, j'ai eu le même problème. Elle est causée par les vignettes en bac à sable avec du papier bulle (cela m'a coûté 2 jours de recherche !!!).

J'ai donc rétrogradé gnome-desktop3-data, gir1.2-gnomedesktop-3.0, libgnome-desktop-3-17 (je ne sais pas si tous les 3 sont nécessaires), puis j'ai retiré bubblewrap.

C'est un sale coup et ça affaiblit la sécurité, mais je m'en fiche ...

Ce ne sera peut-être pas si facile le 18.10.

J'espère que quelqu'un pourra écrire une meilleure solution ...

7
Jacek Kluza

J'utilise 18.04 et je ne pouvais pas obtenir la solution avec le script bwrap au travail. J'ai un thumbnailer quelque part dans mon chemin d'accès personnel, qui fonctionne sous 16.04. Je peux le résoudre en 18.04 en mettant ce programme dans/usr/bin.

0
oscar1919