import.sh 1.0 KB

12345678910111213141516171819202122232425262728
  1. #!/bin/bash
  2. # Restore Rectangle settings (shortcuts + behavior) on a new machine.
  3. #
  4. # Rectangle stores its config as a macOS preferences domain (a cached binary
  5. # plist), so it can't be symlinked like a text config. We version a *cleaned*
  6. # export (shortcuts + behavior only — no window-frame or Sparkle-updater noise)
  7. # and import it here.
  8. #
  9. # NOTE: `defaults import` REPLACES the Rectangle domain. Any existing prefs are
  10. # backed up to bak/ first. Safe on a fresh machine.
  11. set -euo pipefail
  12. DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  13. DOMAIN="com.knollsoft.Rectangle"
  14. SRC="$DIR/${DOMAIN}.plist"
  15. BAK="$HOME/dotfiles/bak"
  16. [ -f "$SRC" ] || { echo "missing $SRC" >&2; exit 1; }
  17. mkdir -p "$BAK"
  18. if defaults export "$DOMAIN" - >/dev/null 2>&1; then
  19. defaults export "$DOMAIN" "$BAK/${DOMAIN}.backup.plist" 2>/dev/null \
  20. && echo "Backed up existing Rectangle prefs to bak/${DOMAIN}.backup.plist"
  21. fi
  22. defaults import "$DOMAIN" "$SRC"
  23. killall Rectangle 2>/dev/null || true
  24. echo "Rectangle settings imported. Relaunch Rectangle to apply."