risou's Lithograph

simple-bar 上で MeetingBar を一部再現する

2023-09-03

MeetingBar とは

https://github.com/leits/MeetingBar

Mac で仕事をしていて Google Meet や Zoom を使う際に便利なツール。
メニューバー上に現在もしくは次のミーティングのタイトルや開始までの残り時間が表示される他、クリックすれば今日一日(あるいは明日も)のミーティングを確認することができる。
さらにミーティングを選んでクリックすると対応するオンラインミーティングのページを開いてくれる。

オンラインミーティングのページに簡単に飛べることもそうだが、次のミーティングが何で、何分後(あるいは何時間後)に始まるのかがひと目でわかるという点が非常に便利で愛用している。

simple-bar とは

https://github.com/Jean-Tinland/simple-bar

一方の simple-bar は Übersicht という Mac で動くウィジェットアプリで利用できるウィジェットのひとつで yabai のステータスバーとしての機能をベースにメニューバーの代替を実現するものだ。
Übersicht および yabai についてはここでは説明を省略する。
興味のある人は以下のリンクから調べてみてほしい。

僕は yabai を使っていることと、様々なアプリを活用していく中でメニューバーが乱雑になってしまっていることから simple-bar を導入した。
Mac の仕組み上、メニューバーを完全に消すことはできず、カーソルを最上部に持っていけば従来のメニューバーが出てくるため、クリックしてメニューから何かを選ぶといった操作については従来のメニューバーに任せ、 simple-bar では何かしらの作業をしながら目に入ると便利なものを表示するようにしている(おそらく simple-bar 自体がそういう用途を想定したアプリである)。
たとえば現在時刻やバッテリー残量、スピーカーの音量あたりはいつでも目視確認できると嬉しい。また最近は Spotify で BGM を流しながら作業することも多いので現在再生中の曲が見れるのも助かっている。

simple-bar に次のミーティングの情報を表示したい

操作が必要な事柄についてはメニューバーに任せ、普段の表示を簡素化できたという点では simple-bar に満足しているが、従来のメニューバーに表示されており simple-bar に表示されていないもののうち、これだけは外せないというものが1つある。それが次のミーティングの情報だ。
次のミーティングが何で、開始時刻がいつか、という情報は仕事を進める上で素早く確認できることが望ましい情報である。
しかし simple-bar には標準では次のミーティングを表示する機能は用意されていない。

ではどうするか。
simple-bar には User widgets という項目があり、コマンドやスクリプトを指定することができる。
これを使って MeetingBar の表示をそのまま再現することにした。

MeetingBar 自体の再発明をしたいわけではないので、既にメニューバーに存在している MeetingBar の表示内容をそのまま取得/表示できればよい。
どうやって実現するかというと AppleScript を使う。

AppleScript で “System Events” というアプリケーションを探し、その中の “MeetingBar” をとってくれば良い。 MeetingBar などがあるメニューバーの右側は “menu bar 2” に含まれているので以下のコードで MeetingBar の枠に表示されている文字列(=現在開催中 or 次のミーティングのタイトルおよび残り時間)を取得できる。

name of menu bar item 1 of menu bar 2

ついでにクリックしたときに現在開催中 or 次のミーティングの Meet の画面を開けるようにした。
これはどうやるかというと、まずメニューバー上の MeetingBar をクリックして MeetingBar のメニューを開く。
次に「開催中のミーティングに参加する」もしくは「次のミーティングに参加」というラベルのアイテムをクリックさせれば良い。
この部分の表記に関しては日本語より英語でマッチングさせた方が確実だろうと思い、 MeetingBar の言語設定を英語にしてそれぞれ “Join current event meeting” と “Join next event meeting” でマッチングさせている。

これで simple-bar 上に現在開催中もしくは次のミーティングの情報を表示させることと、そのミーティングのページを開くことができるようになった。
クリックしてページを開く方は、 AppleScript でメニューバーを操作している都合上、動作が緩慢ではあるが、自分にとっては少ない労力で得たリターンとして十分だと考えている。

2023-09-03T09:29:16.547512Z