簡短的答案:一直重設的 Dock,幾乎從來不是隨機發生的。它是以下 四種情況之一,其中三種你能在一分鐘內修復。
關鍵在於它什麼時候發生:登入時、更新後、拔除螢幕後,或工作中看似隨機發生。每一種情況都指向不同的方向。
這是最常見的原因,通常代表偏好設定檔已經損毀。macOS 會在登入時讀取
com.apple.dock,如果無法解析這個檔案,就會回退到預設值並
寫入一份全新的檔案,每一次都會把你的版面配置直接丟棄。
解法是刻意刪除它,讓 macOS 重新建立一份全新的檔案:
defaults delete com.apple.dock; killall Dock
你會刻意失去你固定的 App 一次,之後就不會再發生。重新設定好 Dock,登出再重新登入,確認它有維持不變。完整內容請見 如何重設 Mac Dock。如果圖示只是順序不同,而不是恢復成出廠狀態,參見Dock 圖示自己重新排列了。
如果之後仍然重設,問題就不出在偏好設定檔,而是有其他東西在重複寫入它。 請繼續閱讀。
更新有時會讓 Apple 在版本之間更改過的鍵值恢復預設,而最常受影響的就是最近使用 應用程式區塊。這種情況不算是損毀,也不需要上面的刪除步驟:
defaults write com.apple.dock show-recents -bool false; killall Dock
更新不應該把你的 Dock 移到另一個邊緣,或改變它的大小。如果真的發生了,那屬於 檔案損毀的情況,而不是更新本身造成的。
這根本不是重設,這也是為什麼常見的解法完全沒用。macOS 決定哪一台螢幕擁有 Dock,而把游標移到另一台螢幕的下方,就會把它交接過去。沒有任何東西被 重新寫入;Dock 只是換了個地方而已。
這方面沒有 defaults 鍵可以用。這是 Apple 從未開放設定的一項 Dock 行為,
所以才會有工具程式專門處理這件事。可參考
將 Dock 固定在單一螢幕,以及
能做到這件事的 App。
如果大小改變了,而你並沒有打開「系統設定」,代表你碰到了分隔線。你的 App 和資料夾之間的那條線,其實是一個拖曳把手,位在螢幕上最繁忙的區域,而且沒有任何確認,也沒有復原功能。
破綻在於,所有東西都是同時改變的:每個圖示的大小都變了,你排好的每個視窗也跟著 移動,因為 Dock 把空間收回去了。這是調整大小,而不是重設。
解法就是鎖定:
defaults write com.apple.dock size-immutable -bool true; killall Dock
分隔線會失去對拖曳的反應,「系統設定」裡的大小控制項也會變成灰色。把
true 換成 false 就能復原。
如果以上皆非,那就是有某個 App 在背後編輯 com.apple.dock。備份與
同步工具、「Mac 清理」類工具程式,以及雇主的裝置管理描述檔,都可能這麼做。
若要確認這個檔案是否被重複寫入,可以觀察它的修改時間:
ls -l ~/Library/Preferences/com.apple.dock.plist
如果你沒有動過 Dock,時間戳記卻在改變,代表有其他東西正在寫入。在公司 Mac 上, 請檢查「系統設定」›「一般」›「裝置管理」中是否有描述檔,你無法在本機覆蓋它,也不應該嘗試這麼做。
否則,能阻止其他 App 的寫入生效的,就是這四個 immutable 鍵。它們完整列在
所有 Mac Dock defaults 指令中。
只有在原因是另一個 App 正在寫入它的情況下才有效。它無法修復一個已經損毀的偏好設定檔,而鎖定本身也存放在同一個檔案裡,所以一個無法讀取的檔案,同時也會遺失這些鎖定。請先修復檔案,再進行鎖定。
沒錯,defaults delete com.apple.dock
確實會這樣。App 本身不受影響,只有哪些 App 被固定的清單會被清除。事先為你的
Dock 拍張截圖,兩分鐘就能把它恢復。
不會。iCloud 不會在 Mac 之間同步 Dock。如果你的 Dock 看起來像另一台 Mac 的樣子,那是來自「遷移輔助程式」或 還原操作,而不是持續進行的同步。
Still Dock 能從選單列固定住全部四項 Dock 設定,並記住你鎖定前的 Dock 樣子。鎖定大小完全免費。