fix: restart Dock/Finder/SystemUIServer after mackup restore
Mackup restores com.apple.dock.plist and other UI preference files, but the running Dock/Finder processes don't reload them automatically. Add ssr::macos::restart_ui (killall cfprefsd Dock Finder SystemUIServer + 2s settle) called immediately after the mackup restore step so the Dock layout and Finder settings take effect without requiring a logout. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -96,6 +96,10 @@ ssr::rs::run brew_install "Homebrew install" ssr::brew::ensure_install
|
|||||||
ssr::rs::run brew_restore "Brew bundle install" ssr::brew::restore "$brewfile"
|
ssr::rs::run brew_restore "Brew bundle install" ssr::brew::restore "$brewfile"
|
||||||
ssr::rs::run mackup_restore "Mackup restore" _ssr_mackup_restore_step
|
ssr::rs::run mackup_restore "Mackup restore" _ssr_mackup_restore_step
|
||||||
|
|
||||||
|
# Restart UI services so Dock/Finder/menubar pick up the plists restored
|
||||||
|
# by Mackup (com.apple.dock.plist etc.) without requiring a logout.
|
||||||
|
ssr::macos::restart_ui
|
||||||
|
|
||||||
ssr::rs::run macos_defaults "macOS defaults" ssr::macos::apply_defaults
|
ssr::rs::run macos_defaults "macOS defaults" ssr::macos::apply_defaults
|
||||||
|
|
||||||
if [[ "${SSR_SNAPSHOT_MACOS_PREFS:-true}" == "true" ]]; then
|
if [[ "${SSR_SNAPSHOT_MACOS_PREFS:-true}" == "true" ]]; then
|
||||||
|
|||||||
@@ -33,6 +33,19 @@ ssr::macos::disable_gatekeeper() {
|
|||||||
sudo spctl --global-disable
|
sudo spctl --global-disable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Restart macOS UI services that read preference files restored by Mackup.
|
||||||
|
# Called after mackup restore so Dock/Finder/menubar pick up the new plists.
|
||||||
|
ssr::macos::restart_ui() {
|
||||||
|
ssr::log "Restarting UI services (Dock, Finder, SystemUIServer, cfprefsd)"
|
||||||
|
local svc
|
||||||
|
for svc in cfprefsd Dock Finder SystemUIServer; do
|
||||||
|
killall "$svc" 2>/dev/null || true
|
||||||
|
done
|
||||||
|
# Brief pause so cfprefsd flushes its cache before Dock re-reads prefs.
|
||||||
|
sleep 2
|
||||||
|
ssr::ok "UI services restarted — Dock and Finder will refresh."
|
||||||
|
}
|
||||||
|
|
||||||
ssr::macos::open_installed_casks() {
|
ssr::macos::open_installed_casks() {
|
||||||
[[ "${SSR_OPEN_CASKS:-false}" == "true" ]] || return 0
|
[[ "${SSR_OPEN_CASKS:-false}" == "true" ]] || return 0
|
||||||
local cask_dir
|
local cask_dir
|
||||||
|
|||||||
Reference in New Issue
Block a user