特定アプリ使用時にTouchBarをファンクションキー表示にする

(2016.12.31追記)
て言うか下みたいに面倒なことしなくても,「設定」の「キーボード」→「ショートカット」→「ファンクションキー」から設定できました…(汗)

TouchBarをファンクションキー表示にする

MacBook Pro (Late 2016) でEmacsを利用していると,標準状態では,TouchBarにESCと顔文字,コントロールストリップが表示されますが,ファンクションキーが表示されている方が便利です。このような場合,ターミナルから以下のように入力して,TouchBarをファンクションキー表示にすることができます。(文頭の $ はコマンドプロンプトなので入力しません)

$ defaults write com.apple.touchbar.agent PresentationModePerApp '{ "org.gnu.Emacs" = functionKeys; }'
$ killall -KILL TouchBarAgent

org.gnu.Emacs の部分をアプリケーションに合わせて変更すれば,他のアプリケーションでも,利用時に TouchBar をファンクションキー表示に固定できます。

複数アプリケーションで設定する

複数のアプリケーションを設定する場合は以下のようにセミコロンで区切って複数の設定を並べます。下の例では,Emacsとターミナルの利用時にはTouchBarをファンクションキー表示にする設定をしています。

$ defaults write com.apple.touchbar.agent PresentationModePerApp '{ "org.gnu.Emacs" = functionKeys; "com.apple.Terminal" = functionKeys; }'
$ killall -KILL TouchBarAgent

ファンクションキー以外の表示設定

functionKeysの部分には他にappと`fullControlStrip'を指定することができます。それぞれ以下のような意味になります。

意味
functionKeys ファンクションキーを表示します
app アプリケーション設定のキーを表示します
fullControlStrip コントロールストリップを展開した状態で表示します

設定の取り消し

あるアプリケーションについて,設定を取り消したい場合は,そのアプリケーションの設定が書かれていない値を書き込むみます。例えば,以下のように実行するとEmacsについての設定は消えて,ターミナルの設定のみが有効になります。

$ defaults write com.apple.touchbar.agent PresentationModePerApp '{ "com.apple.Terminal" = functionKeys; }'
$ killall -KILL TouchBarAgent

以下のようにしてPresentationModePerAppキーそのものを削除すれば全ての設定が元に戻ります。

$ defaults delete com.apple.touchbar.agent PresentationModePerApp
$ killall -KILL TouchBarAgent

以上,備忘録も兼ねてメモでした。