【コラム】
今回は記念すべき&H100回目、思えば遠くへ来たものです。先ほど連載第1回を読み返したのですが、なんといいますか……ノリが変わりませんね。というわけで、これからも表通りではなく裏の畦道をひた走る感覚で参りたいと思います。
さて、今回は「Quick Look」について。いわずと知れたLeopardの新機能だが、意外に知られていない使い方があることも事実。それでは早速、その秘められた力を眺めてみよう。
サムネイルやファイルの内容そのものを表示するというQuick Lookの機能は、QLプラグイン(拡張子は「.qlgenerator」)によって実現されている。
プラグインはApple謹製のものが/System/Library/QuickLookに、ローカルホスト全体で使用するものが/Library/QuickLookに、ユーザ専用のものが$HOME/Library/QuickLookに置かれる。ほかにも、
/System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/Generators
以下には、システム標準のQLプラグインが置かれている。サードパーティー製アプリケーションの場合、バンドル内部に置かれていることもある。
それらのQLプラグインは、対応するファイル種の情報を内部に保有している。それはシステム内のデータを分類・判定するための識別子「Uniform Type Identifier (UTI)」で、メタデータとしてファイルに記録されたものと照合される。UTIの説明は別の機会に譲るとして、今回はこちらを参照してほしい。
Quick Lookが動作する流れで説明してみよう。FinderでQuick Lookを起動するアクションが確認されると、そのファイルのメタデータにあるUTIが確認され、一致するQLプラグインが実行される。逆にいえば、ファイルのUTIに対応するQLプラグインしか実行されないため、テキストファイルを画像用のQLプラグインで表示する、といった変則的な対応はできない仕組みだ。
OS Xには、GUIベースのアプリケーションに関連するコマンドが収録されていることが多い。Spotlightにはmdlsなど「md」から始まるコマンド群があり、Automatorにはそのものズバリ「automator」コマンドがある。「softwareupdate」など、サーバ管理者用と思われるコマンドも、通常はGUIで処理されるべき機能のCUI版だ。
Quick Lookもその例にもれず、「qlmanage」コマンドが収録されている。有り体にいえば開発者のデバッグ用なのだが、使い手の工夫次第では便利に使えるのがコマンドのよさといえる。
qlmanageコマンドの主要なオプション| オプション | 説明 |
|---|---|
-c |
UTIを指定する |
-f |
プレビューの表示倍率を指定する |
-g |
使用するプラグインを指定する |
-m |
UTIと関連するQuick Lookのプラグインを表示する |
-p |
ファイルをプレビューする |
-r |
プラグインのデータを再読み込みする |
-s |
プレビューエリアの幅をピクセル数で指定する |
-t |
サムネイルを描画する |
例として、通常の設定ではアイコンが表示されるだけのEmacs Lispファイル(*.el)を対象に、サムネイルの描画を行ってみよう。Emacs Lispファイルの内容はプレインテキストなので、通常のテキストファイルに使用されるQLプラグイン(Text.qlgenerator)が使えるだろうという計算があるからだ。なお、UTIにはプレインテキスト汎用のもの(public.plain-text)を指定している。
$ qlmanage -t -s 500 -c public.plain-text -g /System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/Generators/Text.qlgenerator emacs.el
QLプラグインとUTIの関係がわかれば、クイックハックへの道筋も見えてくる。そう、バンドル内部の「Info.plist」で定義されているUTIを、勝手に追加してしまおうという寸法だ。もちろん、音楽用のプラグインでワープロ文書を表示するようなことはできないが、前述したEmacs Lispファイルのように、ただメタデータ内のUTIが異なるというだけで門前払いになっているファイル種は救いようがある。
以下に示す作業手順は、Text.qlgeneratorを~/Library/Stockyardへバックアップし、その中のInfo.plistにUTI (ここではpublic.data)を追加、システムエリア内のオリジナルのText.qlgeneratorへ書き戻すというもの。作業後システムを再起動すれば、Emacs LispファイルやCSVファイルがQuick Look可能になっているはずだ。
ただし、この方法では、同じ「public.data」をUTIに持つファイルすべてがプレビューの対象となるため、思わぬ不具合が発生する可能性もある。試す場合には、At your own riskで臨んでほしい。
$ mkdir ~/Library/Stockyard
$ cd ~/Library/Stockyard
$ cp -r /System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/Generators/Text.qlgenerator .
$ open Text.qlgenerator/Contents/Info.plist
(Property List Editorを使い、Root→CFBundleDocumentTypes→0→LSItemContentTypesに「public.data」を追加して上書き保存)
$ cd /System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/Generators/Text.qlgenerator/Contents/
$ sudo mv Info.plist Info.orig
$ sudo cp ~/Library/Stockyard/Text.qlgenerator/Contents/Info.plist .
| 【特別企画】標準で4GHz動作! メーカー公認のCPU+GPUダブルオーバークロックマシン登場 [08:30 2/10] |
| 新世代PCを開拓する「Windows on ARM」、MSが概要を説明 [08:07 2/10] |
| iPad 3の強化点はディスプレイ・バッテリ・GPUか - 海外報道 [23:04 2/9] |
| iTunes Matchが生み出す「Magic Money」とは? [22:47 2/9] |
| アスク、システムドライブを2.5インチSATA HDD/SSDに複製するUSBケーブル [18:50 2/9] |
|
Dell、重複排除により最大98%のデータ削減が可能なバックアップストレージを発売 [09:44 2/10] エンタープライズ |
|
北大、「ポジトロン断層撮影法」による脳腫瘍の性質を診断する手法を開発 [09:40 2/10] エンタープライズ |
|
NICTなど、手術支援ロボット「da Vinci」の3D裸眼映像伝送実証実験を計画 [09:36 2/10] エンタープライズ |
|
OAD『君のいる町 ~黄昏交差点~1』よりキャストメッセージを紹介 [09:22 2/10] ホビー |
|
ファーストサーバ、サイボウズの最新版「Office 9」をASPで提供開始 [09:19 2/10] ビジネスPC |