Skip to content

メニューバーのアイコンを非表示にできるようにする - #52

Merged
somei-san merged 1 commit into
mainfrom
feature/hide-menu-bar-icon
Aug 19, 2026
Merged

somei-san merged 1 commit into
mainfrom
feature/hide-menu-bar-icon

Conversation

@somei-san

Copy link
Copy Markdown
Owner

背景

メニューバーのアイコンを常時出しておきたくない場合に消す手段が無い。ただしアイコンはメニューの唯一の入口で、消すと設定・一時停止・終了のすべてが到達不能になる。「非表示」の設定だけでは成立せず、復帰手段とセットで要る。

変更内容

  • 設定 [display] show_menu_bar_icon(既定 true)を正とし、NSStatusItem の表示をその派生物にする
  • 設定ウィンドウのトグルで消したときだけ、復帰方法を知らせるダイアログを出す
  • トグルの表示同期に null ガードを入れる。設定ウィンドウを一度も開かずに設定ファイルを手編集するとアボートする(同種の既存トグルにも適用)
  • VRT に設定タブの行スタック全体(NSScrollView の documentView)を撮るケースを足す。ペインの撮影は可視域だけを写す

仕様の注意点

  • 復帰手段は「アプリをもう一度起動すると設定ウィンドウが前面に出る」既存の経路で、アイコンの有無に依存しない
  • NSStatusItem.visible は AppKit が永続化するため、起動時は差分判定を挟まず設定の値をそのまま当てる
  • ⌘ドラッグでアイコンをメニューバーから外しても設定には書き戻さない
  • CLIIP_SHOW_SHOW_MENU_BAR_ICON が値を固定していると、トグルを操作しても実効値は動かない。この場合はダイアログを出さず、トグルの表示を実効値へ戻す
  • 追加した行は設定タブの 15 行目で、開いた直後の可視域に入らない。ペインの高さは固定でスクロールさせる方針のため

確認

  • cargo test(159 件)
  • ./scripts/visual_regression.sh(44 ケース ok)
  • cargo fmt --check / cargo clippy --all-targets -- -D warnings
  • ./scripts/build_app_bundle.sh
  • 実機: 設定ファイルの手編集で表示・非表示が切り替わり、ダイアログは出ない
  • 実機: 設定ウィンドウのトグルで消すと設定ファイルに false が書かれ、ダイアログが出る
  • 実機: 二重起動すると 2 つ目は終了し、既存インスタンスの設定ウィンドウが前面に出る

関連リンク

設定 `[display] show_menu_bar_icon` を正とし、NSStatusItem の表示をその派生物にする。
非表示にするとメニューから開く設定・一時停止・終了に届かなくなるため、設定ウィンドウの
トグルで消したときだけ、復帰方法(アプリをもう一度起動すると設定ウィンドウが開く)を
ダイアログで案内する。

トグルの表示同期に null ガードが無く、設定ウィンドウを一度も開かずに設定ファイルを
手編集するとアボートしていた。自動起動のトグルも同じ形だったのであわせて塞ぐ。

VRT に設定タブの行スタック全体(NSScrollView の documentView)を撮るケースを足す。
ペインの撮影は可視域だけを写すため、スクロールしないと見えない行を検証できない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@somei-san
somei-san marked this pull request as ready for review August 19, 2026 01:47
@somei-san
somei-san merged commit 4c4ebec into main Aug 19, 2026
2 checks passed
@somei-san
somei-san deleted the feature/hide-menu-bar-icon branch August 19, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

メニューバーを非表示にできるようにする

1 participant