FAQ: Mecanismo de Tags do macOS (Finder) e Explicação da Implementação deste Aplicativo
1. O que são as tags do Finder no macOS e onde elas são armazenadas?
As tags do Finder fazem parte dos metadados do arquivo. Elas não são gravadas diretamente no conteúdo do arquivo, mas sim nos atributos estendidos (xattr), cuja chave principal é:
com.apple.metadata:_kMDItemUserTags
O conteúdo desse atributo é um plist binário, que, em essência, representa um “array de tags”. Cada elemento da tag contém o nome da tag e um número de cor, variando de 0 a 7 (0: sem cor; 1: cinza; 2: verde; 3: roxo; 4: azul; 5: amarelo; 6: vermelho; 7: laranja).
Portanto:
- “Aplicar uma tag a um arquivo” significa, na prática, “gravar os metadados da tag nos atributos estendidos”;
- Isso é algo distinto de saber se essas tags podem ser indexadas pelo Spotlight para pesquisa.
2. Sobre o antigo atributo estendido com.apple.FinderInfo
com.apple.FinderInfo é um mecanismo mais antigo do macOS/Finder:
- Mecanismo antigo: Ele só pode representar uma única cor e não inclui o nome da tag.
- Ainda pode ser gravado em sistemas mais recentes: Mesmo hoje em dia sendo preferencialmente utilizado
_kMDItemUserTags, o Finder ainda pode escrever/atualizar simultaneamentecom.apple.FinderInfo(para garantir compatibilidade com sistemas mais antigos).
Mais especificamente:
- Somente quando o nome de uma determinada tag está presente na lista de tags personalizadas do Finder, o Finder poderá gravar/atualizar as informações de cor em
com.apple.FinderInfo; - Quando existem múltiplas cores associadas às tags, será gravada apenas a cor correspondente à última tag válida na lista.
3. Problema de multilínguismo: Por que a mesma cor aparece como “tags diferentes” em sistemas com idiomas distintos?
No macOS, são gravados nomes de tags localizados:
- Em sistemas em inglês, é gravado
Red. - Em sistemas em chinês, é gravado
红色.
Para o sistema, esses são dois nomes de tag diferentes. Este aplicativo utiliza APIs do sistema para obter os nomes padrão das tags de cor; portanto, o resultado depende do ambiente de idioma do sistema (“Preferências do Sistema → Geral → Idioma e Região / Idioma da Interface”, escolhendo “Automático” segue o idioma atual do sistema). Se o idioma do sistema não coincidir com o idioma do aplicativo, poderá ocorrer discrepância nos nomes das tags.
4. Por que as configurações do aplicativo devem estar alinhadas com as configurações de tags do Finder?
- Devido às limitações do macOS, os aplicativos geralmente não conseguem ler completamente a lista de configuração “nome da tag ↔ cor” do Finder.
- Ao ler as tags, as APIs do sistema frequentemente fornecem apenas o nome da tag, sem indicar diretamente a cor; se o aplicativo não tiver configurado qual cor corresponde a esse nome, a exibição da cor poderá estar incorreta.
- Da mesma forma, ao gravar tags, as APIs do sistema normalmente recebem apenas o nome da tag, e a cor final dependerá da definição que o Finder atribui a esse nome.
5. Como os metadados das tags são armazenados em diferentes tipos de disco ou locais de rede? (APFS / AppleDouble / NTFS ADS)
5.1 APFS (disco interno) — Armazenamento nativo de xattr (o mais confiável)
O APFS oferece suporte nativo aos atributos estendidos, e os metadados das tags são armazenados diretamente nos xattr do próprio arquivo.
5.2 Locais que não suportam ou suportam parcialmente xattr — AppleDouble (._nome_do_arquivo_original)
Quando o sistema de arquivos ou protocolo de destino não consegue armazenar xattr de forma confiável (como FAT32, exFAT, unidades de rede: SMB/WebDAV/NFS, etc.), o macOS salva os metadados em arquivos AppleDouble associados:
._nome_do_arquivo_original(por exemplo,photo.jpgteria um arquivo correspondente._photo.jpg).
Visibilidade:
- O Finder nunca os exibe (mesmo com a opção de mostrar arquivos ocultos ativada);
- No Terminal, com o comando
ls -la, eles são visíveis; - No Windows, se a opção de mostrar arquivos ocultos estiver ativada, eles serão exibidos (daí a aparição de muitos pequenos arquivos
._).
Importante (causa comum de “perda” de tags):
- Se você mover/copiar arquivos no Windows ou por meio de algumas ferramentas, movendo apenas o arquivo original e deixando os arquivos
._no local anterior, as tags parecerão “desaparecer” no novo local. - Contanto que os arquivos
._correspondentes também sejam movidos para lá, as tags geralmente poderão ser restauradas.
5.3 Conexões SMB a NTFS: Possível uso de ADS (fluxos de dados alternativos)
Ao acessar um volume NTFS via SMB, e desde que as configurações do servidor ou do protocolo permitam, o macOS pode optar por não gerar arquivos ._, gravando os metadados diretamente nos ADS (Alternate Data Streams, fluxos de dados alternativos) do NTFS:
- Os ADS são uma característica do NTFS: além do “dado principal”, um arquivo pode conter vários “fluxos adicionais invisíveis”, usados para armazenar metadados extras.
- Vantagem: ao mover/copiar dentro do próprio NTFS, esses metadados geralmente permanecem intactos, e para usuários do Windows isso é relativamente “limpo” (não gera arquivos
._).
Mas atenção:
- Quando você move/copia arquivos de um NTFS para um FAT32 ou exFAT, o sistema de arquivos de destino não suporta ADS/xattr e outros metadados desse tipo, e o Windows geralmente exibirá uma mensagem do tipo:
“Deseja mesmo copiar os arquivos sem copiar suas propriedades?” Isso indica que esses metadados adicionais serão descartados; após a cópia, as tags provavelmente não serão preservadas.
6. Como visualizar os xattr de tags de um arquivo?
O comando xattr no terminal não é prático: ele não consegue processar ou exibir atributos do tipo plist binário, como com.apple.metadata:_kMDItemUserTags. Para obter uma saída correta, é necessário usar a opção -px para exibir o conteúdo em hexadecimal.
Recomenda-se utilizar ferramentas de terceiros:
- xattred: permite visualizar e verificar de forma intuitiva xattr como
_kMDItemUserTags,com.apple.FinderInfo, entre outros.
7. Qual é a relação entre o Spotlight e as tags? As tags dependem do Spotlight?
- As tags em si não dependem do Spotlight: assim que você aplica uma tag a um arquivo, ela já é gravada nos xattr do arquivo, e o fato de ser indexada ou não não altera sua “existência”.
- O Spotlight é apenas um mecanismo de indexação: ele cria índices com base em metadados como nomes de tags, facilitando buscas em nível do sistema.
- Normalmente, o macOS mantém automaticamente esses índices após operações como mover ou renomear arquivos; porém, discos externos, unidades de rede e pastas incluídas na “privacidade de busca” podem não ser indexadas pelo Spotlight.
8. O que faz o “indexador avançado” deste aplicativo?
Quando o Spotlight não consegue cobrir determinados locais (discos externos, unidades de rede, pastas excluídas da privacidade de busca, etc.), este aplicativo oferece um indexador avançado:
- Ao navegar pelas pastas no aplicativo, ele registra as informações de tags dos arquivos presentes nessa pasta;
- Quando você seleciona, na árvore de diretórios, para visualizar todos os arquivos com uma determinada tag, o aplicativo complementa os resultados do Spotlight com os arquivos encontrados pelo indexador avançado;
- É possível atualizar o índice de tags de uma pasta específica clicando com o botão direito sobre ela e selecionando “Escanear e Atualizar”.
Este recurso ajuda a garantir que as tags sejam reconhecidas e pesquisáveis mesmo em ambientes onde o Spotlight não tem acesso.