Comment synchroniser les préférences des apps avec mackup

Nicolas Furno |

À l’époque de MobileMe (et même de .Mac pour ceux qui s’en souviennent), Apple proposait une solution maison pour synchroniser certains réglages d’un Mac à l’autre. Elle était perfectible, mais bien pratique pour garder les mêmes apps dans le Dock sur tous ses ordinateurs ainsi que les principaux paramètres du système. Ces options ont disparu avec iCloud et Apple ne les a jamais restaurées.

Parmi les options de MobileMe, on pouvait synchroniser les principales préférences système d’un Mac à l’autre.

Il n’existe plus aucune solution officielle pour synchroniser ses préférences d’un Mac à l’autre, mais il y a des solutions tierces. Nous allons évoquer ici mackup (contraction de « Mac » et « backup »), un outil en ligne de commandes qui, une fois installé et configuré, fonctionne automatiquement et sans aucune intervention de votre part. Faute d’interface, son installation et sa mise en place peuvent effrayer, mais je l’utilise depuis plusieurs mois sans problème et une fois configuré, il n’est pas nécessaire d’ouvrir le terminal à nouveau.

Cet outil est gratuit et même s’il ne permet pas de sauvegarder toutes les préférences de votre Mac, il est suffisamment souple pour s’adapter à vos besoins. Voici comment installer, configurer et utiliser mackup.

Installer mackup

Puisqu’il s’agit d’un outil en ligne de commande et non d'une application dotée d’une interface graphique, mackup ne s’installe pas directement à partir du site de son concepteur. Vous devrez en passer par le terminal pour l’installer et pour le configurer. Ouvrez l’application avec Spotlight ou en la cherchant directement dans le dossier des utilitaires.

Pour installer mackup, le terminal est un passage obligé.

Pour installer mackup et le maintenir ensuite à jour, la solution recommandée est d’exploiter le gestionnaire de paquets Homebrew. Si vous ne l’avez jamais utilisé, vous devrez préalablement l’installer en copiant/collant cette commande dans le terminal :

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Cette commande installera Homebrew et les dépendances indispensables, comme les outils ligne de commande de Xcode. De votre côté, vous pouvez saisir le mot de passe de votre session et patienter jusqu’à la fin du processus.

Quand Homebrew est installé, vous pourrez alors installer mackup en saisissant cette deuxième ligne de commande :

brew install mackup

Patientez à nouveau jusqu’à la fin du processus et mackup sera bien installé sur votre Mac. Pour l’utiliser, vous devrez au préalable le configurer.

Mises à jour

Comme toute application, mackup est mise à jour de temps en temps. Pour obtenir la dernière version, utilisez toujours Homebrew et cette commande :

brew update && brew upgrade

Choisir comment synchroniser les données

Pour synchroniser les préférences d’un Mac à l’autre, mackup repose sur un service de synchronisation dans le nuage. Par défaut, l’utilitaire utilise Dropbox : si c’est aussi votre cas, vous pouvez passer immédiatement à l’étape suivante.

Si vous utilisez un autre service, comme iCloud Drive ou Google Drive, vous devrez l’indiquer à mackup avant de pouvoir l’utiliser. Comme il n’y a pas d’interface graphique, les préférences sont mémorisées dans un fichier de configuration placé à la racine de votre dossier personnel. Vous pouvez créer ce fichier avec n’importe quel éditeur de texte (même TextEdit) à condition de l’enregistrer en utilisant le nom .mackup.cfg et en n’oubliant pas le point au début du fichier.

Exemple de fichier de configuration pour mackup, ici avec la sélection de Google Drive au lieu de Dropbox pour synchroniser les fichiers.

À l’intérieur de ce document, vous devrez saisir ces deux lignes, en respectant bien la casse et en modifiant le paramètre du moteur (ici, google_drive) en fonction de vos besoins :

[storage]
engine = google_drive

Voici les différentes options proposées dans mackup 0.8.16 utilisé lors de la rédaction de cet article :

  • Dropbox : Dropbox, mais comme c’est le choix par défaut, vous pouvez vous abstenir de créer un fichier de configuration ;
  • Google Drive : google_drive ;
  • iCloud : icloud ;
  • Box : box ;
  • Copy : copy ;
  • Autre : file_system avec la mention obligatoire du chemin en dessous.

Si votre service de prédilection n’est pas dans la liste, par exemple si vous utilisez OneDrive, Hubic ou encore Seafile, vous pouvez spécifier un dossier où mackup stockera les préférences à synchroniser. Pour cela, saisissez dans le document de configuration :

[storage]
engine = file_system
path = chemin/vers/le/cloud

Si vous choisissez l’un des services pris en charge nativement, les données seront stockées par défaut à la racine du dossier associé au service. Notez que mackup trouvera automatiquement l’emplacement de ce dossier sans que vous ayez à le spécifier.

Par défaut, mackup enregistrera les données dans :

~/Dropbox/Mackup/

Si vous le souhaitez, vous pouvez opter pour un autre sous-dossier en utilisant le paramètre directory. Par exemple, pour stocker dans un dossier nommé « Préférences » et avec iCloud Drive, voici à quoi ressemblerait le fichier de configuration :

[storage]
engine = icloud_drive
directory = Préférences

Enregistrez le fichier pour mémoriser la configuration. Comme son nom commence avec un point, vous ne le verrez pas dans le Finder par défaut. Pour le modifier par la suite, utilisez soit le terminal avec cette commande :

nano ~/.mackup.cfg

Soit en affichant au préalable les fichiers masqués dans le Finder. Ce qui peut être réalisé de multiples manières, mais puisque nous évoquons le terminal, voici la commande à saisir :

defaults write com.apple.finder AppleShowAllFiles 1 && killall Finder

Utilisez la même commande en remplaçant le 1 par un 0 pour les masquer à nouveau.

Première synchronisation des préférences

Une fois mackup configuré, vous devrez encore passer par le terminal une dernière fois pour déplacer les préférences des logiciels et commencer la synchronisation. Pour cela, utilisez cette ligne de commande sur l’un de vos Mac :

mackup backup

Sur les autres Mac à synchroniser, vous devrez utiliser cette variante qui ne va pas initier une nouvelle synchronisation, mais restaurer les fichiers déjà synchronisés sur le premier Mac :

mackup restore

Ces deux commandes suffisent, par la suite tout est géré automatiquement, sauf si vous installez un nouveau logiciel qui n’est pas encore synchronisé. C’est-à-dire qu’à chaque fois que vous modifierez une préférence, le fichier correspondant sera automatiquement synchronisé sur tous les Mac. Naturellement, le service de synchronisation des fichiers utilisé doit être activé sur toutes les machines pour que ce soit effectif.

À l’intérieur du dossier de synchronisation de mackup, vous retrouverez les fichiers de préférences. Cliquer pour agrandir

Comment est-ce que cela fonctionne concrètement ? Cet outil ne se charge pas de la synchronisation à proprement parler, il déplace les préférences dans le dossier synchronisé. Une fois mis en place, les fichiers de réglages se retrouvent dans Dropbox, Google Drive ou iCloud Drive. À l’emplacement original, mackup laisse un lien symbolique qui permet à l’application correspondante de s'y retrouver.

C’est une méthode qui a fait ses preuves et que j’utilise depuis des années avec Dropbox (c’était même un des éléments évoqués en 2009 dans le test du service). Cet utilitaire facilite le travail et permet de gagner beaucoup de temps, mais il ne fait rien de plus. Ce qui est au fond une excellente nouvelle : une fois configuré, vous pourriez le supprimer totalement et la synchronisation fonctionnerait toujours normalement.

En contrepartie, cette méthode n’est pas universelle et elle pose problème avec certaines apps. C’est ce que nous allons voir dans la partie suivante…

Préférences sauvegardées par défaut et ajouts personnels

Projet open source (le code source est disponible sur GitHub), mackup est davantage orienté vers les développeurs que vers le grand public. C’est probablement ce qui explique que la liste de préférences synchronisées par défaut contient majoritairement des outils dédiés aux développeurs, à commencer par des éditeurs de code.

Une partie des apps synchronisées par mackup. Cliquer pour agrandir

La liste est longue néanmoins (369 apps au compteur dans la version en cours) et vous trouverez dans le lot quelques applications courantes. Citons le gestionnaire de mots de passe 1Password, les applications Adobe, le convertisseur de vidéos HandBrake, la suite bureautique LibreOffice, le gestionnaire de tâches OmniFocus, l’éditeur vectoriel Sketch ou encore le lecteur VLC.

La liste complète des applications prises en charge par défaut est disponible à cette adresse et elle est mise à jour régulièrement. Elle peut également être affichée dans le terminal en utilisant la commande :

mackup list

Si votre application de prédilection ne s’y trouve pas, mackup permet malgré tout de synchroniser ses préférences. Voici comment.

Pour chaque application, il existe un fichier de configuration chargé d’indiquer à mackup où se trouvent les préférences. L’utilitaire ne se contente pas de synchroniser les fichiers .plist qui stockent les réglages des apps avec macOS, il peut prendre en charge n’importe quel fichier ou même un dossier. Voici à quoi ressemble un fichier de configuration, ici pour le client FTP Transmit :

[application]
name = Transmit

[configuration_files]
Library/Preferences/com.panic.Transmit.plist
Library/Application Support/Transmit/Metadata
Library/Application Support/Transmit/Favorites

Chaque application synchronisée par mackup est identifiée par un nom et associée à un ou plusieurs chemins à synchroniser. Dans ce cas, il y a un fichier de préférences et deux dossiers, dont celui qui contient les favoris. Transmit est pris en charge par défaut, mais si vous voulez synchroniser une app qui ne l’est pas, vous devrez créer un fichier de configuration similaire.

Par exemple, j’utilise le gestionnaire d’abréviations Typinator et mackup ne le gère pas nativement. Pour l’ajouter à la liste, j’ai créé un dossier .mackup à la racine de mon dossier personnel. Le point est important, c’est un dossier caché et le Finder ne vous permet pas de le créer. Utilisez plutôt le terminal, avec cette commande :

mkdir ~/.mackup

À l’intérieur de ce dossier (vous pourrez le voir en utilisant la commande pour afficher les éléments masqués donnée plus haut), vous devrez créer un fichier avec l’extension .cfg par logiciel à synchroniser. Même si ce n’est pas obligatoire, je vous recommande de reprendre le nom de l’app comme nom de fichier. Dans mon cas, je crée le document typinator.cfg et voici son contenu :

[application]
name = Typinator

[configuration_files]
Library/Application Support/Typinator
Library/Preferences/com.macility.typinator2.plist

Dans cet exemple, j’ai besoin à la fois du fichier de préférences et des données elles-mêmes, stockées dans le sous-dossier Application Support de la bibliothèque. Pour utiliser mackup avec une app qui n’est pas prise en charge, vous devrez ainsi savoir où se situent les fichiers à synchroniser. En général, ils se trouvent dans le dossier nommé Preferences à l’intérieur de la Bibliothèque (maintenez la touche Option et cliquer sur le menu Aller du Finder pour pouvoir ouvrir le dossier Bibliothèque.)

Les apps qui respectent le sandboxing, notamment toutes celles du Mac App Store, rassemblent pour leur part les préférences et données dans le dossier Containers à l’intérieur de la Bibliothèque.

Dossier dédié aux préférences à l’intérieur de la Bibliothèque. Surligné ici, un fichier de préférences synchronisé avec mackup : dans le dossier, il n’y a qu’un alias. Cliquer pour agrandir

Une fois que vous avez ajouté une application personnalisée, relancez la sauvegarde à la main pour appliquer les changements. Pour cela, vous pouvez utiliser cette commande :

mackup -f backup

En ajoutant -f, vous écraserez automatiquement tous les raccourcis déjà créés sans avoir à confirmer systématiquement l’opération. Si vous aviez déjà utilisé mackup sur plusieurs Mac, vous devrez appliquer les changements en utilisant cette fois la commande :

mackup -f restore

Si vous ne voulez pas mettre les mains dans le cambouis, vous pouvez également demander aux développeurs en charge du projet d’ajouter une app en publiant une issue sur GitHub.

Problèmes éventuels

Mackup est un outil bien pratique, mais il ne permet pas de tout synchroniser. Certaines apps n’acceptent pas que l’on déplace leurs préférences et cet outil vient alors bloquer leur bon fonctionnement. J’ai été bloqué pour ma part par l’éditeur d’images Acorn et par l’éditeur de texte iA Writer : dans les deux cas, je perdais mes réglages et le logiciel créait un nouveau fichier de préférences.

Par ailleurs, d’autres apps intègrent leur propre mécanisme de synchronisation et mieux vaut alors reposer sur lui. C’est le cas, parmi celles que j’utilise, du lanceur Alfred ou bien du terminal alternatif iTerm. Dans ces deux cas de figure, mackup n’intervient pas pour synchroniser les données.

Signalons enfin que cet outil est conçu pour ne fonctionner qu’à l’intérieur de votre dossier personnel. Il ne peut pas servir à synchroniser des fichiers ou des dossiers associés au système, ou bien à un autre utilisateur sur le Mac.

Si mackup pose problème, une commande permet de restaurer les éléments synchronisés à leur place :

mackup uninstall

avatar leolelego (non vérifié) | 

Vous pensez qu'il y aurait un risque de mettre ses prefs sur GitHub ? un peu comme un sous-module d'un dotfiles ?

avatar C1rc3@0rc | 

@leolelego

Oui, comme sur n'importe quel cloud en fait.
Les preferences contiennent beaucoup de choses, beaucoup d'informations et influent fortement sur le comportement du Mac. Il faut imaginer qu'il y a des mots de passe en clair qui peuvent faire partie du lot, des ID d'applications, des references de comptes,...
Donc potentiellement toutes ces données sont accessibles a toute personne qui le veut et sont modifiables!!!

J'ai pas encore lu tout le code du soft, qui est fort bien ecrit au demeurant, mais a priori il ne chiffre pas les fichiers et n'en verifie pas l'integrité. Donc en gros, toutes les preferences sont réellement accessibles a n'importe qui.

De plus ce soft dispose de fonctions dangereuses (modifications des droits d'acces - autorisations) et ne devrait jamais etre utilisé en mode administrateur - il vérifie d'ailleurs qu'il est lancé en mode utilisateur.

Apres c'est un outil d'administration en ligne de commande, donc l'utilisateur est censé avoir des competences d'informaticien et savoir ce qu'il fait. C'est pas un outil pour l'utilisateur normal de Mac

avatar wataru | 

Bah un peu si tu compte est en public.

avatar Pyjamane | 

Question bête : n'est-ce pas exactement ce que propose, entre autres, TimeMachine ?
En effet, chaque fois que je change d'ordi, tout redevient comme avant dans les configs une fois ma sauvegarde recrachée.

avatar r e m y | 

@Pyjamane

Non. Là il s'agit de dupliquer les réglages en continu entre plusieurs Mac que tu utilises simultanément (par exemple entre un iMac qui reste à la maison et un MacBookPro que tu emportes avec toi pour bosser)

avatar Pyjamane | 

Ha, OK. Merci !

avatar LeSpace | 

J'ai essayé, ça m'a foutu le bazar.
Des préférences qui ont sautés, d'autre qui se sont réinitialisé ou qui ont changé, etc.

L'idée était bonne, mais ce n'est pas user friendly et très expérimental.
J'ai fait une clean instal et je ne reutiliserais pas pour ma part.

avatar altcmd | 

C'est pas la même chose que dans Préférence Système > iCloud > iCloud Drive (Options) ?

avatar Avenger | 

Arme à double tranchant! Si une préférence fout la merde, elle le fera sur un autre Mac!

avatar 8enoit | 

Beaucoup trop compliqué

CONNEXION UTILISATEUR