Macメモ : BitBarでメニューバーにプログラムの実行結果を表示
BitBarをインストールするとMacのメニューバーに任意のプログラム/スクリプトの実行結果を表示することができる。
代表的なものはプラグインとして実装されているし、自分で好きなプラグインを作成することもできる。
BitBarのインストール
Homebrew Caskを使っているなら下記コマンドでインストールできる。
$ brew cask install bitbar
または下記ページで最新版をダウンロードしてアプリケーションフォルダにコピーしてインストールすることも可能。
Releases · matryer/bitbar · GitHub
インストールしたらBitBarを起動して、プラグインをインストールするフォルダ(自分の好きな場所でよい)を指定する。
BitBarプラグインのインストール
プラグインの一覧は下記ページで確認できる。
getbitbar.com
カテゴリごとに分類されているので、試しに"Time"カテゴリの"Unix Time"プラグインをインストールしてみる。
それぞれのプラグインの"+Add to BitBar"を押すと、下記ダイアログが表示されるので問題がなければインストールする。
インストールが完了するとメニューバーに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"
その他、リンクや色を指定することもできる。
#!/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"
プラグイン作成の詳細については下記ページを参照。
GitHub - matryer/bitbar: Put the output from any script or program in your Mac OS X Menu Bar