SLコマンド on touch bar

新しいMacBook Proのtouch barで走るSLコマンドを作りました。
(touch barシュミレータでしか動作確認してませんが。)


https://raw.githubusercontent.com/NeoCat/sl_on_touchbar/master/sample.png



オリジナルのようにオプション(-a, -l, -F)には対応していません。


ソース(Swift)は以下。ビルド済みのバイナリも入ってます。
https://github.com/NeoCat/sl_on_touchbar


追記: 新しいmacOSでは、開発元が確認できないので開けない、というエラーが出ますが、一度 中にある「sl_on_touchbar」というappをctrlクリックして開くを選択すると、エラーダイアログに「開く」というボタンが現れますので、これをクリックすると以降は普通に開けるようになります。


なおビルドとシミュレータの動作にはmacOS Sierra 10.12.2 beta (16C41b)以降、XCode 8.2 beta以降が必要です。


slが走っている間はウィンドウのフォーカスが奪われるので、実質何も操作できなくなります。端末しか占拠しない普通のSLコマンド以上にうざいです。


これは、touch barに何か出すにはアプリケーションのウィンドウを手前に出している必要があるため。
普通のSLコマンドのような使用感を得るために、UIElement=YESにしてDockアイコンが出ないようにしたアプリケーションを起動してサイズ0×0のウィンドウをこっそり開くことで、touch barへの描画権を得ています。こいつが常に手前に出るせいでフォーカスが奪われるというわけです。

SL画像の差し替え [11/16追記]

「長い列車写真」の情報をコメントでいただいたので、touch barにこの写真を流せるようにしました。
slコマンドの引数か、環境変数 SL_IMAGE のいずれかに写真ファイル(高さを60ピクセルにしてください)へのパスを設定しておくと、そのファイルの画像が使われます。

参考: https://github.com/avatsaev/touchbar_nyancat