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はインストール後、以下の権限を要求する:
- Screen Recording 権限
- 理由:メニューバーアイコンの位置や状態を読み取るため、画面のピクセルを監視する必要がある
- macOSにはメニューバーを直接操作するAPIがないので、画面キャプチャしか方法がない
- 「システムプライベートウインドウピッカーをバイパスして画面とオーディオに直接アクセス」
- これはmacOS Sequoia以降の新しい警告
- 通常、画面録画アプリは毎回ウィンドウ選択ダイアログを経由する必要があるが、Iceはメニューバーを常時監視するため、これを回避する必要がある
- 許可しないとIceの主要機能が動かない
プライバシー的に大丈夫なのか
オープンソースでGitHubにコードがある(https://github.com/jordanbaird/Ice)。実際にやっているのはメニューバー領域のピクセル読み取りだけで、画面全体を録画して送信するようなことはない。
オーディオも実際には使わないが、macOSが画面録画権限とオーディオ権限をセットで扱うため、警告に「オーディオ」という文言が入ってしまう。
BartenderやHidden Barなど、同種のメニューバー管理ツールはすべて同じ権限を要求する。Iceが特別怪しいわけではない。
Iceでできること
- メニューバーを2段に分ける(隠せる)
- 「Always Hidden」セクション — めったに使わないアイコンを完全非表示に
- 「Hidden」セクション — 普段は隠して、空白部分をクリックで表示
- キーボードショートカット — 隠す/表示をホットキーに割り当て
- メニューバーの背景カスタマイズ — 透明度・色変更
- 時計のカスタマイズ — 秒表示、曜日追加など自由なフォーマット
導入後、ノッチに隠れていたアイコンがすべて見えるようになる。Hammerspoonのアイコンも無事復活。
なぜmacOSデフォルトに入っていないのか
M系Macのノッチ問題は、Mac使い全員が悩まされているはず。それなのにmacOS自体にはメニューバー管理機能がない。Apple側に何か事情があるのか不明だが、Macを買ったら最初に入れるべきツールの一つだと感じた。
まとめ
| 状況 | 対応 |
|---|---|
| Hammerspoonアイコンが出ない | まず hs.menuIcon(true) を試す |
| それでも出ない | ノッチに隠れていないか確認 |
| メニューバーが満杯 | Iceを導入する |
単に ice でインストール失敗 |
brew install --cask jordanbaird-ice |
関連記事
- HammerspoonでClaudeデスクトップアプリの常に許可を自動クリックする — Claudeの許可ダイアログ自動化
- Claude徹底活用ガイド — Claude / Claude Code / Coworkの全体像