Які додаткові ескізи доступні та як їх встановити?


9

Питання :

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

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

Які додаткові ескізи можна встановити, щоб активувати попередній перегляд у цих випадках?


Питання та відповідні питання :

Як я можу доручити Nautilus попередньо генерувати ескізи?


Примітка :

Сміливо можете внести свій внесок у цей список, відредагувавши відповідь вікі спільноти. Якщо ви це зробите, будь ласка, дотримуйтесь вказівок у цій дискусії щодо мета та використовуйте попередньо існуючий зразок, щоб відповідь відповідала.

Відповіді:


11

Загальні інструкції з монтажу


Ескізи в сховищах та PPA

Ряд ескізів є попередньо упакованими і їх можна легко встановити з програмного центру або командного рядка. Ці ескізи не потребують додаткової конфігурації, і вони повинні працювати відразу після перезавантаження nautilus. Це можна зробити за допомогою:

nautilus -q 

Будь ласка, прочитайте ці запитання, перш ніж встановлювати що-небудь із PPA:

Що таке PPA і як їх використовувати?

Чи безпечно PPA додати до моєї системи та на які «червоні прапори» слід стежити?

Спеціальні сценарії ескізів на Ubuntu 11.04 та новіших версій

Спеціальні ескізи, які недоступні у сховищах, повинні встановлюватися вручну. Це кроки, які вам доведеться вжити, щоб встановити їх:

Перевірте, чи є в скрипті перелічені залежності. Якщо так, спочатку встановіть їх.

Завантажте скрипт і зробіть його виконуваним за допомогою Наутілусаchmod a+x filethumbnailer або через нього

Призначте папку у вашій файловій системі для всіх майбутніх ескізів і перемістіть до неї сценарій, наприклад

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

Далі вам доведеться зареєструвати свій сценарій у Nautilus . Для цього створіть запис ескізів /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 для асоціацій ескізів. Дивіться тут для отримання додаткової інформації.


Джерела :

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



Ескізи за типом файлу


CHM файли

Огляд

Опис : За допомогою цього скрипту ви отримаєте мініатюри своїх chm-файлів у файловому менеджері nautilus. Сценарій використовує найбільше зображення з домашньої сторінки файла chm для створення мініатюри, зазвичай це буде зображення передньої обкладинки.

Творець : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

Залежності :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;

Сценарій

#!/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 та створює для нього мініатюру.

Творець : Маріано Сімоне ( https://github.com/marianosimone/epub-thumbnailer )

Залежності : жодна з них не вказана, одразу працювали чудово

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

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

Сценарій

#!/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 (marianosimone@gmail.com)
# 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 - це ескіз для Gnome, який надасть Windows .exe файлам піктограму, засновану на їх вбудованому значку та загальній піктограмі "Wine program". Якщо програма має нормальні дозволи на виконання, тоді буде показаний стандартний вбудований значок. Цей ескіз також надасть піктограму мініатюр для .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

А як із .xpmзображеннями? Я припустив , що вони були «стандарт» , як png, jpgі bmp, але Nautilus не виробляє попередні перегляди для них.
MestreLion

Файли зображень XPM приносять
Glutanimate

1
я не знаю, я дізнався, що він не може обробляти файли з коментарями перед /* XPM */заголовком, навіть якщо eogвідображає їх добре
MestreLion

Я думаю, ви можете знайти міметик файлу, використовуючиfile -i FILE
Вільф

1

Файли ICNS (піктограми Mac OSX)

Огляд

Nautilus не створює ескізів для піктограм Mac OSX через деякі помилки , але вбудована підтримка GdkPixbuf.

Сценарій

Це базовий сценарій для створення мініатюр для .icnsфайлів. Більш надійну версію можна знайти на веб- сайті 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', [], [])

Встановити

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.