Коротко: macOS хранит одно значение tilesize и отображает его на дисплеях с разной плотностью пикселей, поэтому одно и то же число на одном экране выглядит больше, чем на другом. Сам Dock размер не меняет.
Блокировка размера не даёт изменить само число, а именно это вы и можете
контролировать: defaults write com.apple.dock size-immutable -bool true; killall Dock
У Dock одна настройка размера для всего Mac, отдельной для каждого дисплея нет. tilesize задаётся в пунктах, а число пикселей в пункте на разных экранах разное. На экране Retina ноутбука значок в 48 пунктов занимает примерно вдвое больше пикселей, чем на мониторе 1080p, поэтому на одном экране Dock выглядит правильно, а на другом нет, хотя сохранённое значение не менялось.
Поэтому Dock будто сам меняет размер, как только вы подключаете или отключаете монитор: число осталось прежним, изменился холст под ним.
Есть вторая, отдельная проблема, и именно её стоит блокировать. Когда Dock попадает на экран другого размера, вместе с этим меняется его максимальная ширина. Dock, свободно умещающийся на 27-дюймовом мониторе, не помещается на экране ноутбука, и macOS уменьшает значки, чтобы они влезли. Вернитесь к большому монитору, и они не всегда возвращаются к прежнему размеру.
Каждое случайное касание разделителя, пока Dock на другом экране, записывает новый
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 на одном экране, где объясняется, что macOS позволяет закрепить, а что нет.
tilesize больше 128. Dock принимает его из командной строки, а при следующем запуске урезает. Скрытого большего размера не существует.defaults write com.apple.dock size-immutable -bool false
defaults write com.apple.dock tilesize -int 48
killall Dock
Используйте число, которое вы записали на первом шаге. Если вы его не записали,
defaults delete com.apple.dock tilesize вернёт Dock к значению macOS по умолчанию.
Нет.
size-immutable фиксирует только tilesize. Увеличение и
largesize остаются настраиваемыми, если не заблокировать их отдельно, а блокировка размера при
включённом увеличении часто приводит к тому, что Dock всё равно будто бы двигается.
Нет. Блокировка не даёт записать значение, но не мешает macOS отображать Dock в том масштабе, который нужен дисплею. Презентации работают точно так же, как раньше.
Все, которые имеют значение.
size-immutable работает уже больше пятнадцати лет и по-прежнему работает в macOS 26. Панель
настроек переехала в Системные настройки › «Рабочий стол и Dock», именно там будет неактивный
ползунок.
Если не хотите хранить список команд, Still Dock предлагает те же четыре настройки в виде переключателей и запоминает, каким был Dock до блокировки. Блокировка размера бесплатна.