Hammerspoon導入とIceでメニューバー問題を解決した話

Hammerspoon導入とIceでメニューバー問題を解決した話

Hammerspoonを入れたらメニューバーアイコンが出てこない。原因はM系Macのノッチに隠れていたこと。Iceで完全解決した記録。

Hammerspoonとは

Macの自動化ツール。Luaスクリプトで以下のようなことができる:

「LuaなんてLLM全盛の今は書けなくてもClaudeに頼めばいい」という時代になり、再評価が進んでいる。

つまづいたポイント①:起動しても何も出てこない

Spotlightで「Hammerspoon」を起動しても、コンソールウィンドウしか出てこない。メニューバーにアイコンも何もない。

普通は起動するとメニューバー右上にハンマーのアイコンが出るはずだが、それが見当たらない。

確認1: メニューアイコン表示設定がオンか

Hammerspoonのコンソールで:

print(hs.menuIcon())

true と返ってきた → 表示設定はONなのに見えない。

確認2: 強制的に再表示

hs.menuIcon(true)

これでもダメ。

結論:M系Macのノッチに隠れていた

M1以降のMacBookには画面上部にノッチ(カメラ部分の出っ張り)がある。メニューバーアイコンが多いと、ノッチに押し出されて完全に見えなくなる。これがHammerspoonアイコンが出てこない真の原因だった。

解決策:Iceの導入

Ice は無料・オープンソース(MITライセンス)のメニューバー管理ツール。BartenderやHidden Barと同種だが、無料で軽量。

インストール

brew install --cask jordanbaird-ice

⚠️ 単に ice ではインストールできない。正式名は jordanbaird-ice(開発者名がプレフィックスになっている)。

必要な権限(macOS Sequoia以降)

Iceはインストール後、以下の権限を要求する:

  1. Screen Recording 権限
    • 理由:メニューバーアイコンの位置や状態を読み取るため、画面のピクセルを監視する必要がある
    • macOSにはメニューバーを直接操作するAPIがないので、画面キャプチャしか方法がない
  2. 「システムプライベートウインドウピッカーをバイパスして画面とオーディオに直接アクセス」
    • これはmacOS Sequoia以降の新しい警告
    • 通常、画面録画アプリは毎回ウィンドウ選択ダイアログを経由する必要があるが、Iceはメニューバーを常時監視するため、これを回避する必要がある
    • 許可しないとIceの主要機能が動かない

プライバシー的に大丈夫なのか

オープンソースでGitHubにコードがある(https://github.com/jordanbaird/Ice)。実際にやっているのはメニューバー領域のピクセル読み取りだけで、画面全体を録画して送信するようなことはない。

オーディオも実際には使わないが、macOSが画面録画権限とオーディオ権限をセットで扱うため、警告に「オーディオ」という文言が入ってしまう。

BartenderやHidden Barなど、同種のメニューバー管理ツールはすべて同じ権限を要求する。Iceが特別怪しいわけではない。

Iceでできること

導入後、ノッチに隠れていたアイコンがすべて見えるようになる。Hammerspoonのアイコンも無事復活。

なぜmacOSデフォルトに入っていないのか

M系Macのノッチ問題は、Mac使い全員が悩まされているはず。それなのにmacOS自体にはメニューバー管理機能がない。Apple側に何か事情があるのか不明だが、Macを買ったら最初に入れるべきツールの一つだと感じた。

まとめ

状況 対応
Hammerspoonアイコンが出ない まず hs.menuIcon(true) を試す
それでも出ない ノッチに隠れていないか確認
メニューバーが満杯 Iceを導入する
単に ice でインストール失敗 brew install --cask jordanbaird-ice

関連記事