简短回答:四个 defaults 键能阻止 Dock 被调整大小、移动、清空或隐藏。它们是按账户存储的,所以在有多个登录账户的家用 Mac 上,需要在每个账户里都设置一遍。
屏幕使用时间做不到这一点。它控制的是哪些 App 可以打开以及能用多久,对 Dock 完全没有任何作用。
这个问题的其他版本都关乎陌生人使用的设备。家用 Mac 恰恰相反:改动你 Dock 的人和你一起生活,他们不是故意的,你也没法真的取消他们的访问权限。
这改变了一个好答案该有的样子。你要争取的不是胜利,而是让周二看起来和周一一样。
屏幕使用时间和家人共享是 Apple 的家长控制功能,它们在自己的范围内表现出色:哪些 App 可以运行、能运行多久、允许什么内容,以及 Mac 什么时候在夜里安静下来。
这些都不涉及 Dock。屏幕使用时间里没有针对 Dock 大小、位置、内容或自动隐藏的设置。两者解决的是不同的问题,可以一起使用,但谁都不能替代谁。
defaults write com.apple.dock size-immutable -bool true
defaults write com.apple.dock position-immutable -bool true
defaults write com.apple.dock contents-immutable -bool true
defaults write com.apple.dock autohide-immutable -bool true
killall Dock
每一项都会让“系统设置”里对应的控件变灰,因此完全无法从界面中改动。它们能在重启、睡眠和 macOS 更新后依然生效。
它们是按账户存储的。这是家里最容易被忽略的一点。如果家人各自使用不同的登录账户,在你自己的账户里运行这些命令,对其他人的账户毫无影响,每个账户都需要单独执行一遍。如果大家共用一个登录账户,一次就够了。
要解除某一项锁定,移除对应的键,而不是把它设为 false:
defaults delete com.apple.dock contents-immutable; killall Dock
包含每个键类型的完整列表见每一条 Mac Dock defaults 命令。
如果这台 Mac 目前是所有人共用一个登录账户,为每个人分别设置一个账户是更彻底的解决办法,而 Dock 只是它能解决的一部分:独立的桌面、独立的下载内容、独立的浏览器历史记录,一切都是独立的。这样一来 Dock 就完全不再是一个共享的界面,每个人的 Dock 都会保持他们离开时的样子。
代价是你需要设置这些锁定不止一次。这个代价比听起来要小,而且只需要做一次。
保持这些设置的方式有两种,在家用场景中只有一种是正确的。
如果你想要个折中方案,Still Dock 可以要求用 Touch ID 才能关闭锁定,这样随便一个碰到键盘的人就无法随手解除它,而对你来说也不过是一次指纹验证的距离。
macOS 会在 Dock 右侧添加一个最近使用的应用区域。在共享登录账户上,它会被上一个人打开过的内容填满,而且无论有没有人碰过任何东西,每天都会变化。
defaults write com.apple.dock show-recents -bool false
killall Dock
这四项锁定不会移除它。这是一项独立的设置,说明见如何阻止最近使用的 App 出现在 Dock 中。
免费的 Still Dock for iPhone and Apple Watch 应用能让你从手机上查看并切换这些锁定,这样改动之后要重新锁定 Dock,就不用再走回家里那台 Mac 前了。
不会。它只会阻止 Dock 发生变化。限制能安装或打开什么内容是屏幕使用时间的职责,两者可以一起使用。
会的,如果家人各自使用不同的登录账户,因为这些是按账户设置的偏好。由 MDM 推送的描述文件可以一次性覆盖整台设备,但在家里用 MDM,对这个问题来说未免小题大做。
用普通锁定,如果他们找到了终端命令,就可以。用描述文件,无法通过终端,不过仍然可以在“系统设置”中被有意移除。两者都不是保险箱,也从来不打算是。
不会。它们保存在账户的偏好设置里,而不是系统里,所以更新不会影响它们。它们也能在通过“迁移助理”转移到新 Mac 后保留下来。
在一个登录账户中设置的内容不会出现在另一个账户中,所以请在你家人实际使用的账户中分别设置锁定。如果某个账户会在会话结束后被 macOS 清空,这些设置也会随之消失。
命令是一样的,情况却不同。参见教室 Mac、图书馆或公共 Mac,或适用于一般情况的共享 Mac 指南。