Office 2010のテクニカルプレビューが公開されました。基本機能がWebアプリでも提供されるなど、Macユーザも注目すべきトピックがいろいろあります。発売は2010年前半になる予定とのことです。

さて、今回は「Info.plist」について。アプリケーションのバンドル内部にある設定ファイルの一種だが、ここに知られざるキーを書き足すと、あのアプリケーションがあんな動作を……そこまで大袈裟ではないが、意外に便利な使い方もできる。その基本的な役割を解説しつつ、実例をいくつか紹介してみよう。

キーを探して

Info.plistには、アプリケーションの基本情報が記録される。著作権表記やバージョン、使用するアイコン、他のアプリケーションと区別するための識別子 (com.apple.xxxxx) など、通常はユーザによりアクセスされない / される必要のない情報が記録されている。ユーザによる設定の変更は、~/Library/Preferencesディレクトリ以下にあるplistファイル (Stickiesならばcom.apple.Stickies.plist) に記録されるしくみだ。システムに関連する部分の設定はInfo.plist、ユーザランドの設定は~/Library/Preferences以下のplistファイル、という理解で問題ないだろう。

このInfo.plistに記述されるべき「キー」は、Appleが公開している (NDA対象外の) 開発者向け文書に詳しい。ここにあるプロパティリストキーリファレンスは、Info.plistのいわば仕様書で、アプリケーションの起動にかかわるサービス (Launch Services) にも影響する。以下に紹介する使用例も、この文書をたよりにトライ&エラーで動作確認している。

Info.plistの内容はプロパティリストマネージャで確認できる

LSUIPresentationMode

実際に試したなかでも実用性が高いと感じたキーが、この「LSUIPresentationMode」。Appleの文書にも記載されているとおり、このキーは1から4の整数を値としてとるが、4を指定しておくと、メニューバーとDockの両方を"自動的に隠す"設定にできるのだ。Safariのように、できるだけ広いデスクトップを確保したいアプリケーションに便利と思うが、いかがだろう。

ちなみに、整数に「1」を指定するとDockは"自動的に隠す"設定となる。「2」はDockが非表示 (他のアプリケーションが前面に表示された場合は一時解除) に、「3」はUIの構成要素すべてが非表示になる。「0」が通常の動作モードだ。たとえばSafari 4では1と2が期待どおりに動作しないなど、アプリケーションによって動作が異なるため、トライ&エラーで臨んでほしい。

なお、defaultsコマンドでInfo.plistに書き込む場合には、拡張子 (.plist) を省略すること。書き込んだあとはパーミッションが変更されるため、chmodコマンドを実行することもお忘れなきよう。


$ sudo defaults write /Applications/Safari.app/Contents/Info LSUIPresentationMode -int 4
$ sudo chmod 644 /Applications/Safari.app/Contents/Info.plist

※設定を元に戻す場合
$ sudo defaults delete /Applications/Safari.app/Contents/Info LSUIPresentationMode
$ sudo chmod 644 /Applications/Safari.app/Contents/Info.plist

このとおり、メニューバー下の領域も利用可能に。解像度が1,440×900の場合、有効面積が縦方向に約2.2%広がる計算だ

LSUIElement

幅が限られたDock領域を有効に活用しようとすると、アイコンを小さく設定することが常道。しかし、アイコンそのものが非表示になれば、その必要もなくなるはず……ということで検討したいのが「LSUIElement」。このキーに「1」(整数ではなく文字列) を設定すれば、そのアプリケーションはDockとメニューバ-が非表示となる。タスク切り替えの候補にも表示されなくなるのは、少々困りものだが、そのアプリケーションの表示要素がアクティブなときにCommand+Qキーを押せば、終了させることはできる。スティッキーズにちょうどいいと考えるが、どうだろう?


$ sudo defaults write /Applications/Stickies.app/Contents/Info LSUIElement -string 1
$ sudo chmod 644 /Applications/Stickies.app/Contents/Info.plist

※設定を元に戻す場合
$ sudo defaults delete /Applications/Stickies.app/Contents/Info LSUIElement
$ sudo chmod 644 /Applications/Stickies.app/Contents/Info.plist

スティッキーズを起動しているが、Dockにもタスクスイッチャにもそのアイコンは表示されない