Thunar のカスタマイズ

この章では、ファイルマネージャの一部を必要に応じてカスタマイズする方法を説明します。

「送る」メニュー

Thunar には 「送る」 メニューが用意されており、ファイルやフォルダの送り先を選択できます。「送る」 メニューへのアクセスは、メインメニューから 「ファイル」「送る」 を選択するか、またはファイルやフォルダの上で右クリックし、コンテキストメニューから 「送る」 を選択します。

「送る」メニュー

デフォルトでは、「送る」 メニューには、すべてのファイルおよびフォルダの選択時に 「デスクトップ (リンクを作成)」 という名前のエントリが表示され、これを選ぶと選択された各アイテムのリンクをデスクトップに作成します。また、「ショートカットペイン」 が有効になっていれば、フォルダ選択時のメニューには 「サイドペイン (ショートカットを作成)」 という名前のエントリが表示され、これを選ぶとサイドペインに新しくショートカットを追加します。これらエントリの次に、Thunar はコンピュータにリムーバブルドライブが接続されていればそれらのエントリを表示します。上のスクリーンショットではファイルの送り先として 「フロッピードライブ」 が表示されています。「送る」 メニューからデバイスを一度選択すれば、そのデバイスは自動的にマウントされるため、手動でマウントする必要がないこと覚えておいてください。

さらに、Thunarthunar-sendto-email プラグインを同梱しており、「メール (添付ファイル)」 エントリも追加されています。これは選択されたファイルを添付ファイルとしてメール送信できるようにします。選択されたアイテムの中にフォルダが一つでも含まれていれば、選択されたアイテムはメールに添付される前に ZIP 形式でアーカイブされます。他に、複数のファイルを選択した場合、あるいは 200KiB を超えるサイズのファイルを選択した場合には、ファイルを ZIP 形式でアーカイブするかどうかの確認が行われます。

Thunar「送る」 メニューを拡張し、新しいターゲット用のエントリを利用者またはアプリケーション開発者が追加する場合は、標準デスクトップエントリファイル を使用することで容易に行えます。これらのファイルは $XDG_DATA_DIRS/Thunar/sendto/ フォルダに格納されなければなりません (環境変数 $XDG_DATA_DIRS に関する詳細は、XDG Base Directory Specification を参照してください)。

ターゲットの .desktop ファイルの MimeType には、「送る」 メニューにそのエントリが表示されるファイルのタイプを指定します。例えば、Flickr のアップロードツールのエントリを追加する場合、このエントリは JPEG (または Frickr がサポートするファイル形式の) ファイルが選択されたときにのみ表示されるべきであり、MimeType=image/jpeg; の指定を追加するべきです。MimeType を指定しなかった場合にはエントリはすべてのファイルタイプで表示されます。

アプリケーション postr を使用した完全な例を以下に示します:

# postr.desktop - Integrate postr into
#                 the "Send To" menu.
[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
TryExec=postr
Exec=postr %F
Icon=postr
Name=Flickr
MimeType=image/jpeg;

このファイルを ~/.local/share/Thunar/sendto/ (なかったら作成してください) にインストールすると、JPEG ファイルの「送る」メニューに新しいエントリ 「Flickr」 が表示され、これを使って JPEG 画像を Frickr へアップロードできるようになるはずです。

Thunar Project Wiki には、「送る」メニューで使えるエントリの実用例が登録されています。Wiki ページにあなたの新しい例をお気軽に追加してみてください。

サムネイラ

Thunar はいくつかのファイルタイプのファイルの内容のプレビューとしてサムネイル表示するために、サムネイルを作成する小さなユーティリティを使用します。これら小さなツールはサムネイラと呼ばれます。Thunar はイメージとフォントファイルのサムネイラを同梱しており、gconf をサポートする GNOME のサムネイラがインストールされていれば、それを自動的に使用します。しかし、このサムネイラの基本機能に加え、他のファイルタイプのサムネイラを動的に拡張したいときがあるかもしれません。

あなたがカスタムサムネイラを作成する場合、少なくとも2つのコマンドラインパラメータに対応したプログラムにする必要があります。一つは入力ファイルにサポートしたいファイルタイプに対応していること、もう一つは出力ファイルに Thumbnail Management Standard で指定されたフォーマットに準拠した PNG ファイルに対応していることです。また、必須ではありませんが、あなたのプログラムはサムネイルのサイズ要求に対応していることも強く推奨されます。あなたの作成したプログラムが勝手な画像サイズでファイルを出力した場合、Thunar は後でそれを要求されるサイズに変更しますが、それは最適なサイズでサムネイルを生成した場合に比べ適切な結果を生み出すとは限りません。

あなたのサムネイルを生成するユーティリティができあがったら、Thunar がそれを認識して使用できるように登録する必要があります。そのためには、あなたは $XDG_DATA_DIRS/thumbnailers/ パスのいずれかにサムネイラの説明ファイル (.desktop ファイル) をインストールしなければなりません。例えば、そのサムネイラをあなたのユーザアカウントだけで使用したい場合には、.desktop ファイルを ~/.local/share/thumbnailers/ にインストールします。サムネイラの .desktop ファイルは、以下のフォーマットになります。

サムネイラ説明ファイルのフォーマット

サムネイラ説明ファイルは Desktop Entry Format で規定された形式で、Type に特殊なタイプ X-Thumbnailer を指定し、特殊なフィールド X-Thumbnailer-Exec に新しいコードを指定します。

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=X-Thumbnailer
Name=Your Thumbnailer
MimeType=your-supported/mime-type;
X-Thumbnailer-Exec=your-thumbnailer %i %o %s

Version および Encoding はデスクトップエントリ仕様によって決まります。上の例の値をそのまま使用してください。Type フィールドは特殊な値 X-Thumbnailer でなければならず、他の値ではとサムネイラとして認識されません。Name フィールドにはあなたのサムネイラの説明を記述してください。

X-Thumbnailer-Exec フィールドにはあなたのサムネイラのコマンドを指定します。ここではサムネイラ実行時に置き換えられるいくつかのフィールドコードをサポートしています。認識するフィールドコードを以下に示します:

%i
サムネイルを作成する入力ファイルのローカルパスです。サムネイラを起動したディレクトリからの相対パスか、絶対パスになります。
%o
生成されたサムネイルが出力されるファイルのローカルパスです。出力ファイルはサムネイル標準 (上記参照) に準拠した有効な PNG ファイルでなければなりません。一部のサードパーティツールを呼び出す場合、パスは .png で終わらないかもしれないことを覚えておいてください。
%s
要求される生成するサムネイルのサイズ (ピクセル) です。このパラメタは任意です。
%u
%i と似ていますが、ファイルのパスではなく、URI に置き換えられます。これは GNOME との互換性のために追加されました。
%%
一文字の % に置き換えられます。

パラメータには、少なくとも %o と、%i または %u が指定されなければなりません。指定されない場合サムネイラは正しく動作しません。

MimeType にはサムネイラがプレビューを生成できる MIME タイプを、セミコロンで区切って指定します。

EPS サムネイラの例

ここでは、ImageMagick の一部として提供される convert ユーティリティを使用した、.eps ファイル用サムネイラの作成からインストールまでの例を紹介します。最初に、サムネイルを要求されたサイズで生成するための、convert を呼び出す簡単なスクリプトを作成します。

#!/bin/sh
#
# eps-thumbnailer - Example thumbnailer script for EPS files.
#
# Usage: esp-thumbnailer eps-file png-file size
#

# command line parameters
ifile=$1
ofile=$2
size=$3

# invoke convert (ImageMagick)
exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

このスクリプトを eps-thumbnailer という名前で保存し、実行許可を設定して、/usr/local/bin にインストールします。

$ chmod +x eps-thumbnailer
$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

次に、以下のようなサムネイル説明ファイル eps-thumbnailer.desktop を作成します。

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=X-Thumbnailer
Name=EPS Thumbnailer
TryExec=convert
MimeType=image/x-eps;
X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

このファイルは /usr/local/share/thumbnailers にインストールされなければなりません (なかったら作成してください)。

$ sudo install -d /usr/local/share/thumbnailers
$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

eps-thumbnailer.desktop ファイルに特殊キー TryExec が指定されていればそれを参照します。TryExec には、サムネイラが動作するためにシステム上に存在しなければならないコマンドを設定します。この例の場合、このスクリプトは convert ユーティリティが存在しないと起動されません。

最後に、サムネイラキャッシュを再生成し、Thunar にこのサムネイラを認識させます。サムネイラキャッシュは $XDG_CACHE_HOME/Thunar/thumbnailers.cache にあります (あなた、またはあなたのシステム管理者が変更していなければ、$XDG_CACHE_HOME~/.cache/ フォルダを指しています)。サムネイラキャッシュは Thunar によって定期的に再作成されますが、Thunar に同梱されている thunar-vfs-update-thumbnailers-cache-1 ユーティリティを使用して強制的に再作成させることができます。このユーティリティは通常あなたのインストレーションプレフィックスのサブフォルダ libexec にインストールされています (Debian/Ubuntu の場合は /usr/lib/thunar) 。従って、例えば Thunar がプレフィックス指定 /usr でインストールされていた場合のこのユーティリティの起動は以下のようになります:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

ただし、サムネイラキャッシュはシステム全体での場所ではなく、あなたのホームフォルダに格納されるため、このプログラムをスーパーユーザではなく、あなたのユーザアカウントで実行することを忘れないでください。

これで Thunar は変更されたファイルモニタリングサポート (FAM または Gamin を使用します) 付きでコンパイルされ、数秒後には新しいサムネイラキャッシュが自動的にピックアップされ、その後はあなたのカスタムサムネイラを使用してサムネイルの生成ができるようになります。もしそれが行われなければ、起動中のすべての Thunar インスタンスを以下のコマンドで終了させてください。

$ Thunar -q

その後 Thunar を起動し直してください。

サムネイルのクリーンアップ

生成されたサムネイルは Thumbnail Management Standard に準拠して ~/.thumbnails/ フォルダに格納されています。新しいサムネイラをテストしているうちにサムネイラキャッシュを掃除したくなった場合は、以下のようにキャッシュフォルダを削除してください。

$ rm -rf ~/.thumbnails/

これであなたのホームフォルダに多少の空きスペースができます。このフォルダに格納されていたすべての情報はあなたのファイルシステムにあるファイルから自動的に再作成され、必要なデータが失われることはありません。