macOSメニューバーエクストラ/ステータスメニューの間隔を調整する環境設定
macOSのメニューバー右側にあるメニューバーエクストラ/ステータスメニューの配置間隔を調整するための方法をまとめます。
(2つの呼び名が混在しているため両方表記しましたが、以降は「メニューバーエクストラ」の名前で説明します。)
メニューバーエクストラ – HIG について
ノッチ問題
特にノッチ付きMacBookデバイスを使っていると、メニューバーの中央がノッチで分割されているため、右側にあるメニューバーエクストラが多く存在する場合に、左端のアイテムからノッチに隠れてしまう問題があります。隠れたアイテムをどこかに表示する手立てがあるのかと思いきや、特にOS側ではそのような配慮をしてくれるわけでも無いため、ユーザー体験が損なわれている現状があります。
今のところ、この問題を抜本的解決する方法は存在していません。
Bartender系アプリを使って隠したり伸縮させたりする方法もあります。
(※Bartenderは現在、元の開発者から他者に売却され、開発・運営を不安視する声があります。)
- https://icemenubar.app
- https://matthewpalmer.net/vanilla/
- https://github.com/dwarvesf/hidden/
- https://github.com/Mortennn/Dozer/
- https://www.ortisoft.de/en/accessmenubarapps/
間隔を調整するための環境設定キー
メニューバーエクストラのアイテム間隔を設定するための“裏”キーが発見され、これを使うことによってユーザーサイドから間隔を縮めたりすることができるようになりました。
NSStatusItemSpacing
NSStatusItemSelectionPadding
defaultsコマンドを使って任意の値を設定することができます。
defaults -currentHost write -globalDomain NSStatusItemSpacing -int 10
defaults -currentHost write -globalDomain NSStatusItemSelectionPadding -int 6
NSStatusItemSpacing
はアイテム同士の間隔を設定します。個人的には10
くらいが丁度良い感覚があります。
NSStatusItemSelectionPadding
はメニューを展開している最中のハイライトの幅(余白分)を設定します。最小値は6くらいだという話もあるので、見た目的にもとりあえず6
が良さそうだと思いました。
設定を反映するにはOS再起動か、ユーザーをMacからログアウトして再ログインが必要です。SystemUIServerの再起動では反映されません。
間隔10 / 内余白6
NSStatusItemSpacing=10, NSStatusItemSelectionPadding=6
NSStatusItemSpacingを10にすると、若干詰まり気味ですがノッチを避けながらの収まりとしては良い具合になりました。狭めるなら8–12あたりが良さそうです。
内余白は6にしました。
間隔8
NSStatusItemSpacing=8
NSStatusItemSpacing=8ではさらに詰まり気味になります。
間隔1
NSStatusItemSpacing=1
NSStatusItemSpacingを1にするとキチキチになります。好みだと思いますが見た目のバランスが悪いので私はここまで詰めなくて良いと思いました。
内余白20
NSStatusItemSelectionPadding=20
NSStatusItemSelectionPaddingを20にすると、ハイライトが横に拡張されます。
リセット方法
設定自体を消して再ログインか再起動すればシステム標準の状態に戻せます。
defaults -currentHost delete -globalDomain NSStatusItemSpacing
defaults -currentHost delete -globalDomain NSStatusItemSelectionPadding
現在値を確認
defaults -currentHost read -globalDomain NSStatusItemSpacing
defaults -currentHost read -globalDomain NSStatusItemSelectionPadding
関連情報
Discussion