Загальні інструкції з монтажу
Ескізи в сховищах та 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 не виробляє попередні перегляди для них.