細長い「Touch Bar」でMacのUIに一石を投じた新MacBook Proが、ついに出荷された。実際にTouch Barを見て・触れて初めて理解したあれこれを、長年UNIX系OSとともに過ごしてきた人間の目線で語ってみたい。

「Touch Bar」のココがいい

結論からいうと、新MacBook Proの「Touch Bar」は予想以上にいい。OLEDディスプレイということである程度の精細感は予想していたが、"Retinaクオリティー"を標榜するだけあって、粒状感をほとんど感じない。強いて言えば、Siriなどカラー表示されるアイコンにはやや表示装置らしさを感じるが、それ以外の単色表示の部分は物理キーボードのキートップと見まがうほど。

操作感も悪くない。実際に手にする前は、シンクレアZX80のような(と言っても伝わらないか)メンブレンキーボードのそれを想像していたのだが、触れるやいなやTouch Barの表示内容が更新され、操作内容がメインディスプレイに反映される。Taptic Engineは搭載されていないため、触れたときのフィードバックはないものの、クイックな反応が物理的な反応の乏しさを補ってくれる。

操作スタイルというより、"Macとの付き合いかた"はだいぶ変わる。Touch Bar右端の「Touch ID」でロック解除できるのだ(ログインはパスワードの入力必須)。利用できる場面はそれ以外にApple Pay、iTunes Store/App Storeでの購入、システム環境設定のキー解錠に限定されるが、パスワードより指紋認証のほうがセキュリティが高いことは確か。物理的なESCキーは失ったが、それを補って余りある存在と自分を納得させるにはじゅうぶんな新機能だ。

新MacBook Proの「Touch Bar」。物理的なESCキーは失われたが、代わりにTouch IDと「新時代のUI」を手に入れることができる

右端に用意されたTouch ID。やや小ぶりだが、妙に強調されないデザインが好印象

現在のところTouch IDでできることは少ないが、対応機種が増えれば事情は変わることだろう

Touch Bar対応の「Terminal」

我らの必須ツール「Terminal」も、Touch Bar対応を果たしている。起動するとTouch Barに現れる「manページ」というキーはそのひとつで、現在プロンプトで入力中のコマンドを認識し、タップするとそのマニュアルを表示する。インクリメンタルサーチのように、入力内容にあわせてキートップが変化するため、Terminal初心者でもその役割をひと目で理解できるはずだ。

機能はこれだけではない。SSHやSFTPとのリモートセッションを開始する「新規リモート接続」、新しくタブを作成する「新規タブ」、VT100やVT220に対応したファンクションキーも用意されている。

管理者権限でコマンドラインを実行するときに使う「sudo」は、Touch BarおよびTouch IDに対応していないが、早くも有志ユーザが認証モジュールを開発したようだ。以下の「pam_touchid」を所定の方法でインストールすると、sudoを実行するたびにダイアログが現れる。/usr/localディレクトリの作成が必要なため、rootlessモードの解除などセットアップには手間がかかるものの、Apple純正機能として登場するまでの間は試す価値があるだろう。

プロンプト直後の文字列をコマンドとして認識、オンラインマニュアル(man)の引数として利用できる

このようなマニュアルが別画面で表示される

いずれはmacOS標準の機能として、sudoの認証にTouch IDを利用できる日がくるかも(画面は「pam_touchid」)

「Touch Bar」は「Digital Function Row」なのか?

現在のところ、Touch Bar/Touch IDを搭載するMacはMacBook Pro(Retina, 2016)のみ。ひょっとすると、同じバージョン(10.2.1/Build 16B2659)以降のmacOS SierraにもTouch Bar/Touch ID対応のアプリケーションが収録されているのかもしれないが、MacBook Airで運用中のmacOS 10.2.1/Build 16B2555で判断する限り別モノらしい。

標準装備のアプリケーション(Safari/Terminal)を調べたかぎりでは、バージョンとビルド番号は共通だ。しかし、Finderの情報ウインドウに表示されるサイズが微妙に異なる。どちらもMacBook Proのほうが数十KBほど大きいのだ。

Touch Bar関連のサービスと覚しき「Touch Bar Agent」をotoolコマンドで調べてみると(ex. otool -L /System/Library/CoreServices/ControlStrip.app/Contents/MacOS/TouchBarAgent)、新MacBook Proでは「DFRFoundation.framework」というフレームワークへのリンクを確認できる。Terminalの実行ファイルもotoolコマンドで確認してみたが、このフレームワークへのリンクがあるのは新MacBook Proだけだ。

調べてみると、そのうちDFRFoundationは他のMac(ex. MacBook Air)で稼働中のSierraには存在せず、PrivateFrameworksフォルダを見ると他にも「DFRBrightness」と「DFRDisplay」という筆者のMacBook Airにはないフレームワークが存在する。DFRFoundationを含まないアプリを起動したとき、Touch Barの表示内容がデフォルト(ESCキーやSiriなど必要最小限の構成)になるところから推測すれば、この「DFR」から始まるフレームワーク -- Digital Function Rowの略か? -- がTouch Barを駆動していることは確かなようだ。

いずれにせよ、プライベートフレームワークということで資料は乏しく、状況証拠の積み重ねでしかTouch Barが動作するしくみはわからない。今後NSTouchBar(Touch BarのAPI)のドキュメントが整備されれば、現在は謎の部分も解明されることだろう。

新MacBook Proでのみ稼働するサービス「Touch Bar Agent」

現在のところ、「DFR」から始まるフレームワークは新MacBook Proにしか収録されていない