Jakie dodatkowe miniaturki są dostępne i jak je zainstalować?

9

Pytanie :

Menedżer plików Ubuntu oferuje Nautilusszeroką obsługę podglądów plików. Te miniatury są obsługiwane przez programy pomocnicze zwane miniaturkami.

Liczba miniatur zainstalowanych fabrycznie z Ubuntu jest ograniczona, dlatego niektóre bardziej egzotyczne typy plików nie są domyślnie renderowane.

Jakie dodatkowe miniaturki mogę zainstalować, aby aktywować podgląd w takich przypadkach?


Powiązane pytania i odpowiedzi :

Jak mogę poinstruować Nautilus, aby wstępnie generował miniatury?


Uwaga :

Dołącz do tej listy, edytując odpowiedź wiki społeczności. Jeśli to zrobisz, postępuj zgodnie z wytycznymi w tej dyskusji Meta i użyj istniejącego wzorca, aby zachować spójność odpowiedzi.

Glutanimate
źródło

Odpowiedzi:

11

Ogólne instrukcje instalacji


Miniaturki w repozytoriach i PPA

Wiele miniaturek jest wstępnie zapakowanych i można je łatwo zainstalować z centrum oprogramowania lub wiersza poleceń. Te miniatury nie wymagają żadnej dodatkowej konfiguracji i powinny działać natychmiast po ponownym uruchomieniu nautilusa. Możesz to zrobić za pomocą:

nautilus -q 

Przeczytaj uważnie poniższe pytania i odpowiedzi przed instalacją czegokolwiek z umowy PPA:

Co to są umowy PPA i jak z nich korzystać?

Czy PPA można bezpiecznie dodać do mojego systemu i na jakie „czerwone flagi” należy uważać?

Niestandardowe skrypty thumbnailing na Ubuntu 11.04 i nowszych

Niestandardowe miniatury, które nie są dostępne w repozytoriach, muszą zostać zainstalowane ręcznie. Oto kroki, które musisz wykonać, aby je zainstalować:

Sprawdź, czy w skrypcie są wymienione jakieś zależności. Jeśli tak, zainstaluj je najpierw.

Pobierz skrypt i uczynić go wykonywalnym z chmod a+x filethumbnailerlub poprzez Nautilus

Wyznacz folder w systemie plików dla wszystkich przyszłych miniatur i przenieś do niego skrypt, np

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

Następnie musisz zarejestrować swój skrypt w Nautilusie . W tym celu utwórz pozycję miniaturki w /usr/share/thumbnailers. Wpis powinien być zgodny ze schematem nazewnictwa, w foo.thumbnailerktórym foojest wybrane wyrażenie (tutaj file):

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

Specyfikacje miniaturek są zgodne z tym schematem:

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

Te Execpunkty wejścia do skryptu thumbnailer natomiast MimeTypepole wyznacza pokrewnych MIMETYPES. Możliwe zmienne to:

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

Specyfikacje i zmienne będą się różnić w zależności od skryptu. Po prostu skopiuj i wklej zawartość odpowiedniego pola tekstowego do pliku i zapisz go.

Miniaturki powinny być uruchomione po ponownym uruchomieniu nautilus ( nautilus -q).

Niestandardowe skrypty thumbnailing na Ubuntu 11.04 i niższych

Wcześniejsze wersje Ubuntu polegały na GConf w przypadku skojarzeń miniatur. Zobacz tutaj, aby uzyskać więcej informacji.


Źródła :

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=1881360



Miniaturki według typu pliku


Pliki CHM

Przegląd

Opis : Za pomocą tego skryptu uzyskasz miniatury plików chm w menedżerze plików nautilus. Skrypt wykorzystuje największy obraz ze strony głównej pliku chm do wygenerowania miniatury, zwykle będzie to obraz przedniej okładki.

Twórca : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

Zależności :sudo apt-get install python-beautifulsoup python-chm imagemagick

Wpis miniaturki

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

Scenariusz

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

Pliki EPUB

Przegląd

Opis : epub-thumbnailer to prosty skrypt, który próbuje znaleźć okładkę w pliku epub i tworzy dla niej miniaturę.

Twórca : Mariano Simone ( https://github.com/marianosimone/epub-thumbnailer )

Zależności : nie ma na liście, od razu działało dobrze

Wpis miniaturki

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

Scenariusz

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

Pliki EXE

Przegląd

Opis : gnome-exe-thumbnailer to miniatura dla Gnome, która nadaje plikom .exe systemu Windows ikonę opartą na ich osadzonej ikonie i ogólną ikonę „Program do wina”. Jeśli program ma normalne uprawnienia do wykonywania, zostanie wyświetlona standardowa ikona osadzona. Miniaturka wyświetli także ikonę miniatury dla plików .jar, .py i podobnych programów wykonywalnych.

Dostępność : oficjalne repozytoria

Instalacja

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT i inne pliki LibreOffice i Open Office

Przegląd

Opis: ooo-thumbnailer to LibreOffice, OpenOffice.org i Microsoft Office miniaturowy dokument, który może być wykorzystywany przez Nautilus do tworzenia miniaturek dokumentów, arkuszy kalkulacyjnych, prezentacji i rysunków.

Dostępność : PPA dla programistów (najnowsza wersja zgodna z LibreOffice w Ubuntu 12.04 i nowszych)

Instalacja

sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
Glutanimate
źródło
Co ze .xpmzdjęciami? Sądziłem, że były jako „standard” jak png, jpgi bmp, ale Nautilus nie generuje podglądy dla nich.
MestreLion
Pliki obrazów XPM renderują się dobrze na Nautilus 3.4: i.imgur.com/XYUZonV.png
Glutanimate
1
nieważne, dowiedziałem się, że nie może obsługiwać plików z komentarzami przed /* XPM */nagłówkiem, nawet jeśli eogwyświetla się dobrze
MestreLion
Myślę, że można znaleźć typ pliku za pomocąfile -i FILE
Wilf
1

Pliki ICNS (ikony Mac OSX)

Przegląd

Nautilus nie generuje miniatur dla ikon Mac OSX z powodu pewnych błędów , ale obsługa jest wbudowana GdkPixbuf.

Scenariusz

Jest to podstawowy skrypt do generowania miniatur .icnsplików. Bardziej niezawodną wersję można znaleźć na 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', [], [])

zainstalować

Skrypt instalacyjny wraz z .thumbnailerplikiem dla Nautilus są dostępne w repozytorium projektu icns-thumbnailer

MestreLion
źródło