簡単に言うと:Dockのサイズが変わっているわけではありません。macOSは1つのtilesizeを保持し、それをピクセル密度の異なるディスプレイに描画しているため、同じ数値でも画面によって大きく見えるのです。
サイズをロックすると、数値そのものが変更されなくなります。実際に制御できるのはこの部分です:defaults write com.apple.dock size-immutable -bool true; killall Dock
Dockは、ディスプレイごとではなくMac全体で1つのサイズ設定を持ちます。tilesizeはポイント単位の数値であり、ポイントは固定されたピクセル数ではありません。Retinaのノートパソコンの画面では、48ポイントのアイコンは1080pのモニタのおよそ2倍のピクセルにわたって描画されるため、保存された値は一切変わらないまま、一方では正しく見え、もう一方では違って見えてしまいます。
これが、モニタを接続または取り外した瞬間にDockが勝手にサイズ変更されたように見える理由です。数値自体は変わらず、その下にあるキャンバスが変わっただけです。
もう1つ、別の問題があり、これこそロックする価値のあるものです。Dockが異なるサイズの画面に移動すると、その最大幅も一緒に変わります。27インチのモニタに余裕を持って収まっていたDockは、ノートパソコンの画面には収まらないため、macOSはアイコンを縮小して合わせます。大きなモニタに戻っても、必ずしも元のサイズに戻るとは限りません。
違う画面にある間に誤って区切り線に触れるたびに、新しいtilesizeが書き込まれ、その値が戻ってきたときにもそのままついてきます。
最もよく使うディスプレイでサイズを決め、その値を読み取っておけば、後で元に戻せます。
defaults read com.apple.dock tilesize
その数値を書き留めておいてください。通常16から128の間の整数です。
defaults write com.apple.dock size-immutable -bool true
killall Dock
システム設定のサイズスライダーは反応しなくなり、区切り線もサイズ変更を受け付けなくなります。Dockは異なる密度のディスプレイ間で見た目上は引き続き拡大縮小されますが、これはmacOSがそう描画しているだけで、保存された値がズレることはもうありません。解除するにはtrueをfalseに置き換えてください。
Dockがモニタ間を移動することが本当の悩みであれば、サイズの問題はその半分に過ぎません。Dockを1つの画面に固定する方法をご覧ください。macOSで固定できるものとできないものを説明しています。
tilesizeを128より大きく設定する。Dockはコマンドラインからそれを受け付けますが、次回起動時に上限まで制限されます。これは隠れた大きなサイズではありません。defaults write com.apple.dock size-immutable -bool false
defaults write com.apple.dock tilesize -int 48
killall Dock
手順1で記録した数値を使ってください。記録していなかった場合は、defaults delete com.apple.dock tilesizeを実行すれば、当て推量ではなくmacOSの初期設定に戻ります。
いいえ。size-immutableはtilesizeだけを固定します。拡大表示とlargesizeは、別途ロックしない限り調整可能なままです。拡大表示がオンの状態でサイズをロックすると、それでもDockが動いているように見える状態になりがちです。
いいえ。このロックは値が書き込まれるのを止めるだけで、macOSがディスプレイに必要な倍率でDockを描画すること自体は止めません。プレゼンテーションは以前とまったく同じように動作します。
重要なものはすべて対応しています。size-immutableは15年以上前から機能しており、macOS 26でも引き続き機能します。設定パネルは「システム設定」>「デスクトップとDock」に移動しており、グレーアウトしたスライダーはそこにあります。
コマンドの一覧を管理したくない場合、Still Dockなら同じ4つの設定をスイッチとして操作でき、ロックする前のDockを覚えておいてくれます。サイズのロックは無料です。