もた日記

くだらないことを真面目にやる

Macメモ : BitBarでメニューバーにプログラムの実行結果を表示

github.com

BitBarをインストールするとMacのメニューバーに任意のプログラム/スクリプトの実行結果を表示することができる。
代表的なものはプラグインとして実装されているし、自分で好きなプラグインを作成することもできる。

f:id:wonder-wall:20160718161955p:plain

BitBarのインストール


Homebrew Caskを使っているなら下記コマンドでインストールできる。

$ brew cask install bitbar

または下記ページで最新版をダウンロードしてアプリケーションフォルダにコピーしてインストールすることも可能。
Releases · matryer/bitbar · GitHub

インストールしたらBitBarを起動して、プラグインをインストールするフォルダ(自分の好きな場所でよい)を指定する。

BitBarプラグインのインストール


プラグインの一覧は下記ページで確認できる。
getbitbar.com

カテゴリごとに分類されているので、試しに"Time"カテゴリの"Unix Time"プラグインをインストールしてみる。

f:id:wonder-wall:20160718155501p:plain

それぞれのプラグインの"+Add to BitBar"を押すと、下記ダイアログが表示されるので問題がなければインストールする。

f:id:wonder-wall:20160718160021p:plain
f:id:wonder-wall:20160718160032p:plain

インストールが完了するとメニューバーにUnix Timeが表示されるようになる。
プラグインのインストール先として指定したフォルダを開いてみるとunixtime.5s.shというスクリプトファイルが追加されていることがわかる。

$ cat unixtime.5s.sh
#!/bin/bash

# <bitbar.title>Unix Time</bitbar.title>
# <bitbar.version>v1.0</bitbar.version>
# <bitbar.author>Mat Ryer</bitbar.author>
# <bitbar.author.github>matryer</bitbar.author.github>
# <bitbar.desc>Displays unix time.</bitbar.desc>
# <bitbar.image>http://i.imgur.com/h2cyuYu.png</bitbar.image>

date -j -f "%a %b %d %T %Z %Y" "$(date)" "+%s"



BitBarプラグインの更新タイミングの変更



先ほどインストールしたUnix Timeのファイル名はunixtime.5s.shとなっているが、この5sの部分で更新タイミングを指定しており5秒間隔で更新する。例えば、ファイル名をunixtime.1m.shとすれば1分間隔で更新するようになる。

更新間隔の例

  • 10s - 10秒間隔
  • 1m - 1分間隔
  • 2h - 2時間間隔
  • 1d - 1日間隔


BitBarプラグインの作り方


{name}.{time}.{ext}形式のファイル名で標準出力を行うスクリプトを作成し、実行権限を付与してプラグインフォルダに置けば動作する。
例えば以下のようなスクリプトを作成すれば10秒間隔で現在時刻を更新できる。

$ cat date.10s.sh
#!/bin/bash
date

また、複数行を出力することも可能で以下のスクリプトの場合は、One, Two, Threeが一定間隔で切り替わり、---より下に記述されているFour, Five, Sixはメニューバーをクリックした場合に表示される。

#!/bin/bash
echo "One"
echo "Two"
echo "Three"
echo "---"
echo "Four"
echo "Five"
echo "Six"

f:id:wonder-wall:20160718164322p:plain

その他、リンクや色を指定することもできる。

#!/bin/bash
curl -m 1 http://example.com -I >/dev/null 2>&1
[ $? -gt 0 ] && echo "FAIL | color=red" || echo "OK | color=green"
echo "---"
echo "Show Graphs | color=#123def href=http://example.com/graph?foo=bar"
echo "Show KPI Report | color=purple href=http://example.com/report"

f:id:wonder-wall:20160718164312p:plain

プラグイン作成の詳細については下記ページを参照。
GitHub - matryer/bitbar: Put the output from any script or program in your Mac OS X Menu Bar