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.
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.thumbnailer
où foo
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
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
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