web-dev-qa-db-fra.com

Quelles vignettes supplémentaires sont disponibles et comment puis-je les installer?

Question :

Le gestionnaire de fichiers d'Ubuntu, Nautilus, est fourni avec un large support pour les aperçus de fichiers. Ces miniatures sont gérées par des programmes d'assistance appelés miniatures.

Le nombre de vignettes préinstallées avec Ubuntu est limité et, par conséquent, certains types de fichiers plus exotiques ne sont pas restitués par défaut.

Quels vignettes supplémentaires puis-je installer pour activer les aperçus dans ces cas?


Questions/Réponses associées :

Comment puis-je demander à Nautilus de pré-générer des vignettes?


Remarque :

N'hésitez pas à contribuer à cette liste en modifiant la réponse du wiki de la communauté. Si vous le faites, veuillez suivre les instructions de la section cette méta discussion et utilisez le modèle préexistant pour maintenir la réponse cohérente.

9
Glutanimate

Instructions générales d'installation


Vignettes dans les référentiels et les PPA

Un certain nombre de vignettes sont pré-emballées et peuvent être facilement installées à partir du centre de logiciel ou de la ligne de commande. Ces miniatures ne nécessitent aucune configuration supplémentaire et devraient fonctionner immédiatement après le redémarrage de Nautilus. Vous pouvez le faire avec:

nautilus -q 

Veuillez envisager de lire ces questions et réponses avant d'installer quoi que ce soit à partir d'un PPA:

Que sont les PPA et comment les utiliser?

Les PPA sont-ils sûrs d'ajouter à mon système et quels sont les "drapeaux rouges" à surveiller?

Scripts de vignettes personnalisés sous Ubuntu 11.04 et supérieur

Les vignettes personnalisées qui ne sont pas disponibles dans les référentiels doivent être installées manuellement. Voici les étapes à suivre pour les installer:

Vérifiez si le script contient des dépendances répertoriées. Si oui, installez-les d'abord.

Téléchargez le script et rendez-le exécutable avec chmod a+x filethumbnailer ou via Nautilus

Désignez un dossier dans votre système de fichiers pour tous les futurs vignettes et déplacez le script dessus, par exemple.

mkdir $HOME/.scripts/thumbnailers && mv filethumbnailer $HOME/.scripts/thumbnailers

Ensuite, vous devrez enregistrer votre script avec Nautilus . Pour ce faire, créez une entrée de vignette dans /usr/share/thumbnailers. L'entrée doit suivre le schéma de nommage foo.thumbnailerfoo est une expression de votre choix (ici file):

gksudo gedit /usr/share/thumbnailers/file.thumbnailer

Les spécifications de la vignette suivent ce schéma:

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/file.thumbnailer %i %o %s
MimeType=application/file;

L'entrée Exec pointe vers votre script thumbnailer, tandis que le champ MimeType désigne les types MimeTypes associés. Les variables possibles sont:

%i Input file path
%u Input file URI
%o Output file path
%s Thumbnail size (vertical)

Les spécifications et les variables varieront avec chaque script. Copiez et collez simplement le contenu de la zone de texte respective dans le fichier et enregistrez-le.

Les imagettes devraient être opérationnelles après le redémarrage de Nautilus (nautilus -q).

Scripts de vignettes personnalisés sous Ubuntu 11.04 et inférieur

Les versions antérieures d'Ubuntu s'appuient sur GConf pour les associations de vignettes. Voir ici pour plus d'informations.


Sources :

https://live.gnome.org/ThumbnailerSpec

https://bugzilla.redhat.com/show_bug.cgi?id=636819#c29

https://bugs.launchpad.net/ubuntu/+source/gnome-exe-thumbnailer/+bug/752578

http://ubuntuforums.org/showthread.php?t=188136



Vignettes par type de fichier


fichiers CHM

Vue d'ensemble

Description : Avec ce script, vous obtiendrez des vignettes de vos fichiers chm dans le gestionnaire de fichiers Nautilus. Le script utilise la plus grande image de la page d'accueil du fichier chm pour générer la vignette. Il s'agit généralement d'une image de la page de couverture.

Créateur : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

Dépendances : Sudo apt-get install python-beautifulsoup python-chm imagemagick

Entrée du miniature

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/chmthumbnailer %i %o %s
MimeType=application/vnd.ms-htmlhelp;application/x-chm;

Script

#!/usr/bin/env python

import sys, os
from chm import chm
from BeautifulSoup import BeautifulSoup

class ChmThumbNailer(object):
    def __init__(self):
        self.chm = chm.CHMFile()

    def thumbnail(self, ifile, ofile, sz):

        if self.chm.LoadCHM(ifile) == 0:
            return 1

        bestname    = None
        bestsize    = 0
        base        = self.chm.home.rpartition('/')[0] + '/'
        size, data  = self.getfile(self.chm.home)

        if size > 0:
            if self.chm.home.endswith(('jpg','gif','bmp')):
                self.write(ofile, sz, data)
            else:
                soup = BeautifulSoup(data)
                imgs = soup.findAll('img')
                for img in imgs:
                    name = base + img.get("src","")
                    size, data = self.getfile(name)
                    if size > bestsize:
                        bestsize = size
                        bestname = name
                if bestname != None:
                    size, data = self.getfile(bestname)
                    if size > 0:
                        self.write(ofile, sz, data)
        self.chm.CloseCHM()

    def write(self, ofile, sz, data):
        fd = os.popen('convert - -resize %sx%s "%s"' % (sz, sz, ofile), "w")
        fd.write(data)
        fd.close()

    def getfile(self,name):
        (ret, ui) = self.chm.ResolveObject(name)
        if ret == 1:
            return (0, '')
        return self.chm.RetrieveObject(ui)

if len(sys.argv) > 3:
    chm = ChmThumbNailer()
    chm.thumbnail(sys.argv[1], sys.argv[2], sys.argv[3])

fichiers EPUB

Vue d'ensemble

Description : epub-thumbnailer est un script simple qui tente de trouver une jaquette dans un fichier epub et crée une miniature pour celle-ci.

Créateur : Mariano Simone ( https://github.com/marianosimone/epub-thumbnailer )

Dépendances : non répertoriées, a bien fonctionné immédiatement

Entrée miniature

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/epubthumbnailer %i %o %s
MimeType=application/epub+Zip;

Script

#!/usr/bin/python

#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Author: Mariano Simone ([email protected])
# Version: 1.0
# Name: epub-thumbnailer
# Description: An implementation of a cover thumbnailer for epub files
# Installation: see README

import zipfile
import sys
import Image
import os
import re
from xml.dom import minidom
from StringIO import StringIO

def get_cover_from_manifest(epub):
    img_ext_regex = re.compile("^.*\.(jpg|jpeg|png)$")

    # open the main container
    container = epub.open("META-INF/container.xml")
    container_root = minidom.parseString(container.read())

    # locate the rootfile
    elem = container_root.getElementsByTagName("rootfile")[0]
    rootfile_path = elem.getAttribute("full-path")

    # open the rootfile
    rootfile = epub.open(rootfile_path)
    rootfile_root = minidom.parseString(rootfile.read())

    # find the manifest element
    manifest = rootfile_root.getElementsByTagName("manifest")[0]
    for item in manifest.getElementsByTagName("item"):
        item_id = item.getAttribute("id")
        item_href = item.getAttribute("href")
        if "cover" in item_id and img_ext_regex.match(item_href.lower()):
            cover_path = os.path.join(os.path.dirname(rootfile_path), 
                                      item_href)
            return cover_path

    return None

def get_cover_by_filename(epub):
    cover_regex = re.compile(".*cover.*\.(jpg|jpeg|png)")

    for fileinfo in epub.filelist:
        if cover_regex.match(os.path.basename(fileinfo.filename).lower()):
            return fileinfo.filename

    return None

def extract_cover(cover_path):
    if cover_path:
        cover = epub.open(cover_path)
        im = Image.open(StringIO(cover.read()))
        im.thumbnail((size, size), Image.ANTIALIAS)
        im.save(output_file, "PNG")
        return True
    return False

# Which file are we working with?
input_file = sys.argv[1]
# Where do does the file have to be saved?
output_file = sys.argv[2]
# Required size?
size = int(sys.argv[3])

# An epub is just a Zip
epub = zipfile.ZipFile(input_file, "r")

extraction_strategies = [get_cover_from_manifest, get_cover_by_filename]

for strategy in extraction_strategies:
    try:
        cover_path = strategy(epub)
        if extract_cover(cover_path):
            exit(0)
    except Exception as ex:
        print "Error getting cover using %s: " % strategy.__name__, ex

exit(1)

fichiers EXE

Vue d'ensemble

Description : gnome-exe-thumbnailer est un imageur miniature pour Gnome qui donnera aux fichiers Windows .exe une icône basée sur leur icône intégrée et un programme "Wine" générique. "icône. Si le programme dispose d'autorisations d'exécution normales, l'icône intégrée standard sera affichée. Cet imageur donnera également une icône de vignette pour les programmes exécutables .jar, .py et similaires.

Disponibilité : référentiels officiels

Installation

Sudo apt-get install gnome-exe-thumbnailer

ODP/ODS/ODT et autres fichiers LibreOffice et Open Office

Vue d'ensemble

Description: ooo-thumbnailer est un imageur de documents LibreOffice, OpenOffice.org et Microsoft Office qui peut être utilisé par Nautilus pour créer des vignettes pour vos documents, feuilles de calcul, etc. présentations et dessins.

Disponibilité : PPA du développeur (version la plus récente compatible avec LibreOffice sous Ubuntu 12.04 et versions ultérieures)

Installation

Sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
11
Glutanimate

Fichiers ICNS (Icônes Mac OSX)

Vue d'ensemble

Nautilus ne génère pas de vignettes pour les icônes Mac OSX en raison de quelques bogues , mais la prise en charge est intégrée à GdkPixbuf.

Script

Ceci est un script de base pour générer des vignettes pour les fichiers .icns. Une version plus robuste peut être trouvée à https://github.com/MestreLion/icns-thumbnailer

#!/usr/bin/env python
import sys
from gi.repository import GdkPixbuf
inputname, outputname, size = sys.argv[1:]
pixbuf = GdkPixbuf.Pixbuf.new_from_file(inputname)
scaled = GdkPixbuf.Pixbuf.scale_simple(pixbuf, int(size), int(size),
                                       GdkPixbuf.InterpType.BILINEAR)
scaled.savev(outputname, 'png', [], [])

Installer

Un script d'installation, ainsi que le fichier .thumbnailer de Nautilus, sont disponibles dans le répertoire référentiel de projet icns-thumbnailer

1
MestreLion