ファイルを選択してSPACEキーを押せば内容をプレビューできる「Quick Look」。アプリケーションを起動する必要がないぶん単純かつ迅速、対応アプリケーションを考える必要すらないことがポイントだ。WindowsやLinuxでも類似の機能を実現しようという開発プロジェクトがあるほどだから、その利便性は折り紙付きと言っていい。

当コラムでも何度か取りあげているそのQuick Lookだが、システムレベルで支えられているからこそ実現できる機能という点は忘れられがちだ。システムのバックグラウンドではサーバ(quicklookd)が稼働し、クライアントたるFinderからの依頼を受け付ける。描画可能な場合(対応するプラグインが存在する場合)は処理を委ねて描画に至るという流れだ。つまり、プラグインの数次第でQuick Lookが対応する文書は増える。

一方、プラグインは事実上「お任せ」に近い。プラグイン(QLGenerator書類)は単独で配布されるほか、アプリケーションバンドル内部に収める形でも配布されるので、存在に気付かないことすらある。特定領域を監視するQuick Lookデーモンがそれを検出するとデータベースに追加し、SPACEキーを押したときにファイルのUTI(Uniform Type Identifier)をもとに対応するプラグインを呼び出せるようになるが、その仕組みにエンドユーザが関わる必要はない。

Macを使い続けるうちにプレビュー可能なファイル種が増えたものの、描画が遅い、挙動がおかしい、といったQuick Lookにまつわる悩みは増える。今回の趣旨は、より快適にQuick Lookを使うためのメンテナンスと「ひと工夫」の基本を紹介したい。

Quick Lookの概念図(Apple「Quick Look Programming Guide」より)

ファイルを選択しSPACEキーを押すだけというシンプルな操作性の舞台裏では、プラグインの管理などがシスティマティックに行われている

まずはお約束のキャッシュ再構築

Quick Lookデーモンは、認識したプラグインのリストをキャッシュとして保持しており、その情報をもとに動作する。そのキャッシュになんらかの問題が生じれば、Quick Lookの動作は怪しいものとなり、場合によっては正常に表示されなくなったり、描画に時間がかかったりするようになる。

そんなときには、Quick Lookのキャッシュを削除&再構築してみよう。必ず期待どおりの効果がえられるとは限らないが、プラグインが認識されない/プラグインの削除が反映されないといったトラブルは解消されるはずだ。

$ qlmanage -r cache
$ qlmanage -r

Quick Lookのキャッシュを削除&再構築を行う

描画に使用されるプラグインを調べる

特定のファイルをQuick Lookしたときにエラーが生じる場合には、そのファイルに対応するプラグインに問題がある可能性が高い。しかし、Quick Lookしたウインドウにそのような情報はなく、プラグインの保存場所は「~/Library/QuickLook」だったりアプリケーションバンドル内部だったりと、手動で調べることはなかなか難しい。

そんなときには、qlmanageコマンドのデバッグ機能を利用するといい。本来はプラグイン開発者の動作確認のための機能だが、引数にQuick Look対象のファイルを与えてこのコマンドを実行すれば、描画にどのプラグインが使われたかすぐにわかる。使用するオプションは「-d」、通常はデバッグレベル1を意味する「-d 1」を指定すれば足りるだろう。

$ qlmanage -d 1 ~/Desktop/3DCASE.stl

STLファイルのQuick Lookで使用されるプラグインは、メッセージの内容から「/System/Library/QuickLook/SceneKit.qlgenerator」とわかる

激速でPDFを生成

qlmanageコマンドの「-o」オプションを利用すると、Quick Lookウインドウに描画する内容をファイルに書き出すことができる。たとえば、カレントディレクトリにPowerPoint文書「Sample.pptx」が存在するとき、プレビューを意味する「-p」とその場に書き出すことを意味する「-o .」を付けてコマンドを実行すると、カレントディレクトリ上に「Sample.pptx.qlpreview」フォルダが作成される。

実際にどのような描画が行われるかはジェネレータ次第だが、Keynote書類を対象にすると、各ページをPDFとして出力できる。Keynoteで同じことを実行しようとすると、アプリケーションを起動してファイルを開き、「ファイル」→「書き出す」→「PDF」を実行、さらに細かい設定を行ってから実際の出力とステップを踏まなければならないが、qlmanageを使えばコマンドライン1行で済む。品質など細かいことはともかくPDFであればOK、という場合には有用な使いかたといえるだろう。

$ qlmanage -p -o . ~/Desktop/note.key

qlmanageの機能を応用すると、Keynote書類の全ページをPDFとして出力できる