Câu trả lời:
Nhập dòng này trong bảng điều khiển:
defaults -currentHost write com.apple.dock ResetLaunchPad -bool true; killall Dock
Xóa db dường như không thực hiện thủ thuật nào nữa. Vì vậy, hai bước này là cần thiết để thiết lập lại Launchpad trong Yosemite:
- rm ~ / Thư viện / Ứng dụng \ Hỗ trợ / Dock / *. db; bến tàu
- mặc định viết com.apple.dock ResetLaunchPad -bool true; bến tàu
defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock
sẽ làm ngay bây giờ.
rm ~/Library/Application\ Support/Dock/*.db
rm "/$TMPDIR../0/com.apple.dock.launchpad/db/db*"
defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock
Tại đây Launchpad đặt lại, khi xóa ba tệp cơ sở dữ liệu trong ...
/private/var/folders/02/yff1cxtx61v3y1pydkt96j2h0000gn/0/com.apple.dock.launchpad/db/db
/private/var/folders/02/yff1cxtx61v3y1pydkt96j2h0000gn/0/com.apple.dock.launchpad/db/db-shm
/private/var/folders/02/yff1cxtx61v3y1pydkt96j2h0000gn/0/com.apple.dock.launchpad/db/db-wal
... và khởi động lại Dock: killall Dock
Tôi đến đó bằng cách mở
open $TMPDIR../0/com.apple.dock.launchpad/db/
Bắt đầu ở Yosemite, chỉ cần chạy killall Dock
sẽ không cắt nó khi thay đổi defaults
.
Tại Yosemite, defaults
hiện được lưu trữ trong hai quy trình liên tục riêng biệt được gọi là cfprefsd
; một cái thuộc sở hữu của bạn $USER
và cái kia thuộc sở hữu của bạn root
, vì vậy về cơ bản bạn cần phải khởi động lại các quy trình này.
Bạn có thể xác minh điều này bằng cách mở Activity Monitor.app và tìm kiếm cfprefsd
(Thực tế có thể có nhiều hơn hai trong số các quá trình này trong một số trường hợp, mặc dù vậy, đừng lo lắng!)
Tôi đã thêm một lớp lót sau vào hồ sơ shell của mình (.zshrc) để nó dễ dàng có sẵn cho tôi bất cứ lúc nào chỉ bằng cách gõ fixpref
, nhưng bạn cũng có thể cắt bỏ những phần tốt để sử dụng nó một lần!
TL; DR:
#!/bin/bash
# Clear defaults caches, reload them, and then kill everything!
alias fixpref='sudo killall -SIGKILL cfprefsd && killall Dock && killall Finder'
rm ~/Library/Application\ Support/Dock/*.db; defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock