Какие дополнительные миниатюры доступны и как их установить?

10

Вопрос

Файловый менеджер Ubuntu, Nautilus , имеет широкую поддержку для предварительного просмотра файлов. Эти миниатюры обрабатываются вспомогательными программами, называемыми миниатюрами.

Количество миниатюр, которые поставляются с предустановленной Ubuntu, ограничено, и, таким образом, некоторые экзотические типы файлов по умолчанию не отображаются.

Какие дополнительные миниатюры можно установить для активации превью в этих случаях?

Связанные Q & amp; As :

Как я могу дать указание Nautilus предварительно сгенерировать эскизы?

Примечание :

Не стесняйтесь вносить свой вклад в этот список, редактируя ответ сообщества wiki. Если вы это сделаете, следуйте рекомендациям в это мета-обсуждение и использовать существующий шаблон, чтобы поддерживать согласованный ответ.

    
задан Glutanimate 10.03.2013 в 20:57
источник

2 ответа

12

Общие инструкции по установке

Thumbnailers в репозиториях и PPAs

Несколько миниатюр предварительно упакованы и могут быть легко установлены из программного центра или в командной строке. Эти миниатюры не требуют дополнительной настройки и должны работать сразу после перезапуска nautilus. Вы можете сделать это с помощью:

nautilus -q 

Пожалуйста, подумайте о том, чтобы прочитать эти Q & amp; как перед установкой чего-либо из PPA:

Что такое PPAs и как их использовать?

Безопасны ли PPA для добавления в мою систему и какие" красные флаги "отслеживать?

Пользовательские сценарии для эскизов на Ubuntu 11.04 и выше

Пользовательские миниатюры, которые недоступны в репозиториях, должны быть установлены вручную. Это шаги, которые вам нужно предпринять для их установки:

Проверьте, имеет ли сценарий какие-либо зависимости. Если это так, установите их первыми.

Загрузите скрипт и сделайте его исполняемым с помощью chmod a+x filethumbnailer или через Nautilus

Назначьте папку в своей файловой системе для всех будущих миниатюр и переместите сценарий к ней, например.

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

Затем вам нужно будет зарегистрировать свой скрипт с помощью Nautilus . Для этого создайте запись thumbnailer в /usr/share/thumbnailers . Запись должна следовать схеме именования foo.thumbnailer , где foo - это выражение по вашему выбору (здесь file ):

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

Характеристики эскизов следуют этой схеме:

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

Запись Exec указывает на ваш скрипт thumbnailer, в то время как поле MimeType обозначает связанные MimeTypes. Возможные переменные:

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

Спецификации и переменные будут варьироваться в зависимости от каждого сценария. Просто скопируйте и вставьте содержимое соответствующего текстового поля в файл и сохраните его.

Пиксели должны запускаться и запускаться после перезапуска nautilus ( nautilus -q ).

Пользовательские сценарии для миниатюр на Ubuntu 11.04 и ниже

Более ранние версии Ubuntu полагаются на GConf для ассоциаций thumbnailer. Подробнее см. здесь .

Источники :

Ссылка

Ссылка

Ссылка

Ссылка

Thumbnailers по типу файла

CHM-файлы

Обзор

  

Описание . С помощью этого скрипта вы получите миниатюры ваших файлов chm   в диспетчере файлов nautilus. Скрипт использует наибольшее изображение из   на главной странице файла chm для создания эскиза, обычно это   будет изображение передней обложки.      

Создатель : monraaf   ( Ссылка )

     

Зависимости : sudo apt-get install python-beautifulsoup python-chm imagemagick

Запись миниатюры

[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])

Файлы EPUB

Обзор

  

Описание : epub-thumbnailer - это простой скрипт, который пытается найти обложку в epub-файле и создает для нее миниатюру.      

Создатель : Мариано Симоне   ( Ссылка )

     

Зависимости : ни один из них не указан, отлично работает сразу

Запись с миниатюрами

[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)

EXE-файлы

Обзор

  

Описание : gnome-exe-thumbnailer - это thumbnailer для Gnome, который даст Windows .exe файлы значка на основе их встроенного значка и   значок "Винная программа". Если программа имеет нормальное выполнение   разрешений, то будет отображаться стандартная встроенная иконка. Эта   thumbnailer также даст значок миниатюры для .jar, .py и подобных   исполняемые программы.

     

Доступность : официальные репозитории

Установка

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT и другие файлы LibreOffice и Open Office

Обзор

  

Описание: ooo-thumbnailer - это файл значка LibreOffice, OpenOffice.org и Microsoft Office, который может использоваться Nautilus для   создавать эскизы для ваших документов, таблиц, презентаций и   чертежи.      

Доступность : PPA разработчика (последняя версия, совместимая с LibreOffice в Ubuntu 12.04 и выше)

Установка

sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
    
ответ дан Glutanimate 13.04.2017 в 12:24
источник
1

Файлы ICNS (значки Mac OSX)

Обзор

Nautilus не создает эскизы для значков Mac OSX из-за некоторых ошибок , но поддержка встроена GdkPixbuf .

Script

Это базовый скрипт для создания эскизов для файлов .icns . Более надежную версию можно найти на странице Ссылка

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

Установить

Сценарий установки вместе с файлом .thumbnailer для Nautilus доступен в репозитории проектов icns-thumbnailer     

ответ дан MestreLion 14.08.2014 в 19:36