FAQ : Mécanisme des tags de macOS (Finder) et explication de la mise en œuvre dans cette application
1. Que sont les tags du Finder sur macOS, et où sont-ils stockés ?
Les tags du Finder font partie des métadonnées d’un fichier. Ils ne sont pas intégrés au contenu du fichier lui-même, mais sont enregistrés dans les attributs étendus (xattr), principalement sous la clé suivante :
com.apple.metadata:_kMDItemUserTags
Le contenu correspond à un plist binaire, qui est essentiellement un « tableau de tags ». Chaque élément du tag contient le nom du tag et un numéro de couleur, dont la plage va de 0 à 7 (0 : sans couleur, 1 : gris, 2 : vert, 3 : violet, 4 : bleu, 5 : jaune, 6 : rouge, 7 : orange).
Ainsi :
- « Attribuer un tag à un fichier » revient fondamentalement à « écrire les métadonnées du tag dans les xattr » ;
- Cela n’a rien à voir avec le fait que ces tags soient ou non indexés par Spotlight.
2. À propos de l’ancien attribut étendu com.apple.FinderInfo
com.apple.FinderInfo est un mécanisme plus ancien de macOS/Finder :
- Ancien mécanisme : il ne peut représenter qu’une seule couleur et ne contient pas de nom de tag.
- Le nouveau système peut encore l’écrire : même si aujourd’hui la clé
_kMDItemUserTagsprévaut, le Finder peut tout de même écrire/mettre à jour simultanémentcom.apple.FinderInfo(pour assurer la compatibilité avec les anciennes versions du système).
Plus précisément :
- Le Finder n’écrira/mettra à jour les informations de couleur de
com.apple.FinderInfoque si le nom d’un tag se trouve dans la liste des tags personnalisés du Finder ; - Lorsqu’il existe plusieurs couleurs associées aux tags, seule la dernière couleur de la liste valide sera écrite.
3. Problème lié aux langues : pourquoi une même couleur apparaît-elle comme un « tag différent » selon la langue du système ?
macOS écrit des noms de tags localisés :
- Dans une version anglaise du système, il inscrit « Red » ;
- Dans une version chinoise, il inscrit « 红色 ».
Pour le système, il s’agit donc de deux tags distincts. Cette application récupère les noms des tags de couleur par défaut via les API système ; le résultat dépend donc de la locale du système (dans « Préférences Système → Général → Langue et région / Langue d’interface », si « Automatique » est sélectionné, cela suit la langue actuelle du système). Si la langue du système diffère de celle de l’application, il se peut que les noms des tags ne correspondent pas.
4. Pourquoi faut-il aligner les paramètres de l’application avec la configuration des tags du Finder ?
- En raison des limitations de macOS, l’application ne peut généralement pas lire intégralement la liste de configuration « nom de tag ↔ couleur » du Finder.
- Lors de la lecture des tags, les API système ne renvoient souvent que le nom du tag, sans indiquer directement la couleur ; si l’application n’a pas configuré la couleur correspondant à ce nom, l’affichage de la couleur risque d’être incorrect.
- Lors de l’écriture d’un tag, les API système transmettent également uniquement le nom du tag, la couleur finale étant déterminée par la définition que le Finder donne à ce nom.
5. Comment les métadonnées des tags sont-elles conservées sur différents disques ou emplacements réseau ? (APFS / AppleDouble / NTFS ADS)
5.1 APFS (disque interne) — Stockage natif des xattr (le plus fiable)
APFS prend nativement en charge les attributs étendus ; les métadonnées des tags sont donc directement enregistrées dans les xattr du fichier lui-même.
5.2 Emplacements ne prenant pas en charge ou prenant partiellement en charge les xattr — AppleDouble (._nom_du_fichier_original)
Lorsque le système de fichiers ou le protocole cible ne peut pas conserver de manière fiable les xattr (ce qui est fréquent avec FAT32, exFAT, ainsi que sur les lecteurs réseau : SMB/WebDAV/NFS, etc.), macOS place alors les métadonnées dans un fichier AppleDouble associé :
._nom_du_fichier_original(par exemple,photo.jpgcorrespond à._photo.jpg)
Visibilité :
- Finder ne les affiche jamais (même si l’option « Afficher les fichiers cachés » est activée, ils restent invisibles) ;
- La commande Terminal
ls -lapermet de les voir ; - Sous Windows, s’il est configuré pour afficher les fichiers cachés, on peut les apercevoir (on voit donc de nombreux petits fichiers commençant par
._).
Important (une cause fréquente de perte des tags) :
- Si, sous Windows ou avec certains outils, vous déplacez/copiez un fichier en ne transférant que le fichier original, tout en laissant le fichier
._à son emplacement d’origine, les tags sembleront « avoir disparu » une fois le fichier arrivé à sa nouvelle destination. Toutefois, si vous transférez ensuite également le fichier._correspondant, les tags peuvent généralement être restaurés.
5.3 SMB connecté à NTFS : utilisation possible des ADS (Alternate Data Streams)
Lorsqu’on accède à un volume NTFS via SMB et que les configurations du serveur et du protocole le permettent, macOS peut choisir de ne pas générer de fichier ._, mais d’écrire les métadonnées dans les ADS (Alternate Data Streams, flux de données alternatifs) de NTFS :
- Les ADS sont une caractéristique propre à NTFS : un fichier peut, en plus de ses « données principales », comporter plusieurs « flux de données supplémentaires invisibles », utilisés pour stocker des métadonnées additionnelles.
- Avantage : lors des déplacements/copies à l’intérieur d’un volume NTFS, ces métadonnées sont généralement conservées, et cela reste relativement « propre » pour les utilisateurs Windows (aucun fichier
._n’est créé).
Attention cependant :
- Lorsque vous déplacez/copiez un fichier de NTFS vers FAT32 ou exFAT, le système de fichiers cible ne supporte pas les ADS ni les autres types de métadonnées ; Windows affichera alors souvent un message du type :
« Voulez-vous vraiment copier ce fichier sans copier ses propriétés ? » Cela signifie que ces métadonnées supplémentaires seront perdues ; une fois le fichier copié, les tags risquent donc de ne pas être conservés.
6. Comment consulter les xattr des tags d’un fichier ?
La commande en ligne xattr n’est pas pratique : elle ne peut pas traiter ni afficher les attributs de type plist binaire tels que com.apple.metadata:_kMDItemUserTags. Il faut utiliser l’option -px pour obtenir une sortie correcte en format hexadécimal.
Il est recommandé d’utiliser des outils tiers :
- xattred : permet de visualiser et de vérifier de manière intuitive les xattr comme
_kMDItemUserTags,com.apple.FinderInfo, etc.
7. Quelle est la relation entre Spotlight et les tags ? Les tags dépendent-ils de Spotlight ?
- Les tags eux-mêmes ne dépendent pas de Spotlight : dès que vous appliquez un tag à un fichier, celui-ci est immédiatement enregistré dans les xattr du fichier, et le fait qu’il soit indexé ou non n’a aucune incidence sur son existence.
- Spotlight n’est qu’un moteur d’indexation : il se charge d’indexer les noms de tags et d’autres métadonnées afin de faciliter les recherches au niveau du système.
- macOS maintient généralement automatiquement cet index après des opérations telles que le déplacement ou le renommage de fichiers ; toutefois, les disques externes, les lecteurs réseau, ainsi que les répertoires inclus dans les « Exclusions de recherche » ne sont pas indexés par Spotlight.
8. Que fait l’« indexation avancée » de cette application ?
Lorsque Spotlight ne peut pas indexer certains emplacements (disques externes, lecteurs réseau, répertoires exclus de la recherche, etc.), cette application propose une indexation avancée :
- Lorsque vous parcourez un dossier dans l’application, celle-ci enregistre les informations relatives aux tags des fichiers présents dans ce dossier ;
- Lorsque vous sélectionnez un tag dans l’arborescence pour afficher tous les fichiers correspondants, l’application complète les résultats de Spotlight en y ajoutant les fichiers trouvés grâce à l’indexation avancée ;
- Vous pouvez actualiser l’index des tags pour un dossier spécifique en faisant un clic droit sur celui-ci et en choisissant « Scanner et mettre à jour ».