Sincronizza le preferenze delle app tra più Mac

7

Tendo a tenere tutte le mie cose in Dropbox. Ora che ho acquistato un secondo Mac, ho pensato che mantenere le mie preferenze per le applicazioni in Dropbox sarebbe stata una buona idea.

Sono riuscito a sincronizzare alcune delle cartelle Application Support (voglio solo sincronizzare le app più importanti) semplicemente collegando la cartella condivisa su Dropbox al link sui Mac:

ln -s ~/Dropbox/SharedPrefs/AnApp ~/Library/Application Support/AnApp

In questo modo mi assicuro che ogni build Sublime Text 2 che creo su un Mac venga sincronizzata sull'altro Mac.

Ma ho problemi a sincronizzare i file .plist effettivi. Ho fatto esattamente la stessa cosa sopra (l'esempio è per iTerm 2):

mv ~/Library/Preferences/com.googlecode.iterm2.plist ~/Dropbox/SharedPrefs/
ln -s ~/Dropbox/SharedPrefs/com.googlecode.iterm2.plist ~/Library/Preferences/com.googlecode.iterm2.plist

Quindi ora ho il vero file .plist fisico su Dropbox e un link segnaposto su Mac.

Ma non sembra funzionare: quando esco e riapro iTerm (o qualsiasi altra applicazione), non è possibile usare il link simbolico per accedere alle preferenze su Dropbox.

Che cosa dovrei fare?

Apprezzerò ogni consiglio su come mantenere sincronizzate le preferenze delle applicazioni tra due Mac; Sto usando la cmd-line solo perché ci sono abituato ma anche una GUI è ok. Inoltre, un'utility che non sincronizzi solo la cartella Application Support , ma anche .plists e altre cose condivise sarebbe fantastica!

    
posta whatyouhide 18.04.2013 - 00:47
fonte

4 risposte

7

Apri le preferenze e seleziona la casella contrassegnata "Carica le preferenze da una cartella o un URL del cliente" "

Puoi accedere alla tua cartella Dropbox e fare clic su "Salva impostazioni nella cartella"

    
risposta data 03.04.2014 - 06:01
fonte
1

È possibile impostare una voce di azione cartella che monitora le cartelle rilevanti ed esegue un oggetto Applescript che copia i file delle preferenze rilevanti nella cartella Dropbox quando la cartella cambia.

Un altro (simile) approccio sarebbe scrivere un launch agent:

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
     <key>Label</key>
     <string>com.yourname.yourapp</string>
     <key>Program</key>
     <string>/Users/yourname/path/to/your/script</string>
     <key>ProgramArguments</key>
     <array>
         <string>script</string>
     </array>
     <key>WatchPaths</key>
     <array>
         <string>/path/to/preferencefile1.plist</string>
         <string>/path/to/preferencefile2.plist</string>
     </array>
 </dict>
 </plist>

Salva questo come un file com.yourname.yourapp.plist e copialo in ~ / Library / LaunchAgents /. Caricalo in launchd usando

launchctl load ~/Library/LaunchAgents/com.yourname.yourapp.plist

avviarlo:     launchctl start com.yourname.yourapp

Ora l'agente launchd eseguirà lo script / Users / yourname / path / to / your / script ogni volta che "preferencefile1.plist", "preferencefile2.plist", ecc. vengono modificati.

Ad esempio "script" potrebbe essere qualcosa che copia i file delle preferenze nella cartella dropbox.

Un altro agente di lancio deve essere impostato sull'altra macchina per monitorare i file nella cartella della casella personale e copiarli nella posizione corretta quando cambiano.

    
risposta data 26.11.2014 - 22:27
fonte
1

Confermando che la risposta di Kevin sopra funziona anche tramite la sincronizzazione di iCloud Drive in High Sierra.

Ho fatto quanto segue:

  1. Crea una cartella chiamata "Sincronizza" direttamente in iCloud Drive (come fratello ai documenti)
  2. Crea un'altra cartella chiamata iTerm2 all'interno di Sync (presumibilmente lo farò con altre app, quindi la struttura delle cartelle)
  3. Punto iTerm2 lì tramite le sue Preferenze. Ti chiederà se vuoi per posizionare una copia corrente del file plist lì.
  4. Ripeti il passaggio n. 3 su tutti gli altri sistemi in cui desideri utilizzare iTerm2

Tieni presente che può esserci della latenza con la sincronizzazione di iCloud Drive, ma funziona.

    
risposta data 16.01.2018 - 23:12
fonte
0

Un altro modo, che sarebbe utile per altri tipi di file o altri programmi, consiste nell'utilizzare i collegamenti fisici anziché quelli simbolici. Usa "ln" invece di "ln -s". Attenzione: un hard link è molto diverso da un simbolico. Un collegamento simbolico è solo un puntatore al file. È possibile eliminare il collegamento e il file non è stato toccato. Un hard link è una voce duplicata per il file nella directory del disco. È come se il file fosse davvero in due posti contemporaneamente. Un programma non può dire alcuna differenza tra i due. Se si elimina il collegamento, viene eliminato il file effettivo. Sono così diversi che probabilmente non è stato possibile utilizzare lo stesso nome per entrambi.

    
risposta data 13.06.2014 - 16:52
fonte

Leggi altre domande sui tag