SwiftBar – Macメニューバーにアイテムを作成するユーティリティ

SwiftBar – Macメニューバーにアイテムを作成するユーティリティ

Appleのプログラミング言語Swiftで作られているSwiftBar、シェルスクリプトを使ってメニューバーアイテム作成することができるユーティリティである。
他にも色んな機能があるようだが、ここでは日付を西暦と和暦を同時に表示する設定を実行したい。

ダウンロード

SwiftBarの実行ファイルをGitHubがらダウンロード。Assetsの下にある.zipファイルをダウンロードし、中に含まれるSwiftBar.appをアプリケーションフォルダにコピー。

SwiftBar.appを起動してプラグインフォルダを指定する

プラグインフォルダ:以下のパスになる(m1macを各個人の設定名に変更)

/Users/m1mac/Documents/SwiftBar-my-plugins/date_with_era.1s.sh 

ここに作成した.shファイルを入れることになる。

SwiftBar.appを起動するとメニューバーに以下のように「SwiftBar」と表示される。

これは、作成したSwiftで作られたシェルスクリプトを指定して実行することになる。

Set SwiftBar Plugins Location(SwiftBarプラグインの場所を設定する)
Select a folder to store the plugins repository(プラグインリポジトリを保存するフォルダを選択してください)

初回実行時は、プラグインフォルダを選択する必要がある。後から変更することもできますが、空のフォルダを選ぶ必要がある。

上の画像では「Choose New Location」は表示されていないが、初期起動では表示されている筈である。
Choose New Location(新しい場所を選択)をクリックして、ファイルを読み込むようにする。

OKボタンをクリック。SwiftBar-my-pluginsフォルダを指定。フォルダ名は好きな名前で。

以下のダイアログが出るかも。

Check for updates automatically?(自動的にアップデートを確認しますか?)
Should SwiftBar automatically check for updates? Ypu can always check for updates manually from the SwiftBar menu.
SwiftBarは自動的にアップデートを確認すべきでしょうか? SwiftBarのメニューから手動でアップデートを確認することもできます。

Check Autoinatucallyを選択。

SwiftBarを使って西暦、和暦の日付を同時表示する

ファイルを作成して規定のフォルダに入れると、以下のように表示されるようになる。

適当なフォルダを作成して、その中に以下のファイルを入れる。

/Users/m1mac/Documents/SwiftBar-my-plugins/date_with_era.6h.sh 

上のDocumentsはクラウドの書類フォルダになっている。

ファイル名:date_with_era.6h.sh

#!/bin/bash

# --- SwiftBar 設定 ---
# <swiftbar.hideLastUpdated>true</swiftbar.hideLastUpdated>
# <swiftbar.hideRunInTerminal>true</swiftbar.hideRunInTerminal>
# <swiftbar.hideAbout>true</swiftbar.hideAbout>

# 西暦を取得
YEAR_AD=$(date +'%Y')

# 西暦から2018を引いて令和の年数を計算
YEAR_REIWA=$((YEAR_AD - 2018))

# 元号の文字列を作成(出力例:令和8)
ERA="令和${YEAR_REIWA}"

# --- メニューバーへの表示 ---
# 出力例:2026(令和8)年
echo "${YEAR_AD}(${ERA})年"

ファイルが認識されると以下のように表示されるようになる。

位置が一番左に表示される。
右側にある日付に近づけたいので「Cmd」キーを押しながらドラッグして日付の隣に移動する。

ファイルが入っているフォルダを指定(変更)する場合

一度設定した状態で変更したい場合は、Chage Plugin Folder…を選択して、新しいフォルダを指定する。
変更するフォルダを指定してOpenをクリック。

これで、その中のファイルが読み込まれて有効になり、変更した設定が表示されるようになる。

ファイル名にも意味がある

作成したファイルを era.1h.sh などのような名前で保存する。
ファイル名の .1h は「1時間ごとに更新」という意味。元号は頻繁に変わらないので、これで十分( .10s にすれば10秒ごとになる)。
自分の場合は年始の判定が数時間ずれてもあまり支障ないので、6時間ごとに更新が走るように era.6h.sh にしている。

毎回起動の度に表示するようにする

このSwiftBarはアプリなんで、起動して初めて表示される。
そこで、設定が済んだら毎回SwiftBarを起動する必要があるので、起動項目にSwiftBarを追加設定しておく必要がある。
以下のように、一般からログイン項目と機能拡張でログイン項目の追加設定ができる。

これで常にメニューバーに表示されるようになる。