質問:
UbuntuのファイルマネージャーNautilus
は、ファイルプレビューを幅広くサポートしています。これらのサムネイルは、サムネールと呼ばれるヘルパープログラムによって処理されます。
Ubuntuにプリインストールされているサムネールの数は限られているため、一部のよりエキゾチックなファイルタイプはデフォルトではレンダリングされません。
これらの場合、プレビューをアクティブにするために追加のサムネールをインストールできますか?
関連Q&A:
サムネイルを事前生成するようにNautilusに指示するにはどうすればよいですか?
注:
コミュニティWikiの回答を編集して、このリストに自由に投稿してください。その場合は、 このメタディスカッション のガイドラインに従い、既存のパターンを使用して回答の一貫性を維持してください。
リポジトリおよびPPAのサムネイラー
多数のサムネールが事前にパッケージ化されており、ソフトウェアセンターまたはコマンドラインから簡単にインストールできます。これらのサムネラーは追加の構成を必要とせず、nautilusを再起動した直後に機能するはずです。あなたはそうすることができます:
nautilus -q
PPAから何かをインストールする前に、これらのQ&Aを読むことを検討してください。
PPAはシステムに追加しても安全ですか?また、注意すべき「レッドフラグ」は何ですか?
Ubuntu 11.04以降のカスタムサムネイルスクリプト
リポジトリで利用できないカスタムサムネイルは、手動でインストールする必要があります。これらをインストールするために必要な手順は次のとおりです。
スクリプトに依存関係がリストされているかどうかを確認します。その場合、最初にインストールします。
スクリプトをダウンロードして、chmod a+x filethumbnailer
または Nautilus経由 で実行可能にします
将来のすべてのサムネイル作成者用にファイルシステム内のフォルダーを指定し、スクリプトをそのフォルダーに移動します。
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
エントリはサムネイル作成スクリプトを指し、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に依存しています。詳細については、 here を参照してください。
出典:
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
CHMファイル
概要
説明:このスクリプトを使用すると、nautilusファイルマネージャーにchmファイルのサムネイルが表示されます。このスクリプトは、chmファイルのホームページの最大画像を使用してサムネイルを生成します。通常、これは表紙の画像になります。
Creator: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ファイルで表紙を見つけようとするためのサムネイルを作成する簡単なスクリプトです。
Creator:Mariano Simone( https://github.com/marianosimone/epub-thumbnailer )
依存関係:リストされていない、すぐに正常に動作しました
Thumbnailer Entry
[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 ([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は、Windows .exeファイルに埋め込まれたアイコンと一般的な「ワインプログラム」に基づくアイコンを与えるGnomeのサムネイルです。 「アイコン。プログラムに通常の実行権限がある場合、標準の埋め込みアイコンが表示されます。このサムネラーは、.jar、.py、および同様の実行可能プログラムのサムネイルアイコンも提供します。
可用性:公式リポジトリ
インストール
Sudo apt-get install gnome-exe-thumbnailer
ODP/ODS/ODTおよびその他のLibreOfficeおよびOpen Officeファイル
概要
説明:ooo-thumbnailerはLibreOffice、OpenOffice.org、Microsoft Officeドキュメントのサムネイル作成ツールで、Nautilusがドキュメント、スプレッドシート、プレゼンテーションと図面。
可用性:開発者のPPA(Ubuntu 12.04以降のLibreOfficeと互換性のある最新バージョン)
インストール
Sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
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', [], [])
インストール
インストールスクリプトは、Nautilusの.thumbnailer
ファイルとともに、 icns-thumbnailerプロジェクトリポジトリ で入手できます。