Quem utiliza o Linux Mint (Cinnamon) no dia a dia já passou pela frustração de abrir uma pasta cheia de imagens e dar de cara apenas com ícones genéricos ou miniaturas em branco no gerenciador de arquivos Nemo.
No início, a tendência é tentar as soluções comuns: conferir preferências do Nemo, limpar o cache (~/.cache/thumbnails) ou reinstalar o ffmpegthumbnailer. Quando nada disso resolve, a investigação precisa descer uma camada: analisar as chamadas de sistema, checar os tipos MIME e auditar as regras do FreeDesktop.
Abaixo, compartilho o funcionamento do subsistema de thumbnails no Linux Mint, a solução para renderizar arquivos proprietários do Photoshop (.psd) em pastas com nomes complexos e como corrigir SVGs com XML corrompido.
1. Como o Nemo processa miniaturas por baixo dos panos#
O Nemo não decodifica nem renderiza imagens diretamente no seu processo principal. Por questões de segurança, isolamento e estabilidade, ele segue a especificação de thumbnailers da FreeDesktop:
- O Nemo consulta a biblioteca GIO /
shared-mime-infopara determinar o MIME type exato do arquivo. - Procura por arquivos de instrução
.thumbnailernos diretórios/usr/share/thumbnailers/ou~/.local/share/thumbnailers/. - Executa o binário ou script definido na regra, passando o arquivo de origem e o destino temporário em
/tmp. - Em caso de sucesso, grava o preview em
~/.cache/thumbnails/normal/oularge/. Se houver falha, armazena um hash em~/.cache/thumbnails/fail/para não desperdiçar ciclos de I/O em tentativas repetidas.
2. Adicionando miniaturas para arquivos adobe photoshop (.psd)#
Por ser um formato proprietário da Adobe, o Linux não inclui renderizadores nativos de PSD por padrão. Ao monitorar o Nemo em modo de depuração:
nemo -q
G_MESSAGES_DEBUG=all nemo --no-desktop 2>&1 | grep -i thumbnail
O log costuma apontar a falta de um binário compatível:
CinnamonDesktop-Message: Ignoring thumbnailer with missing binary: '/usr/lib/psdthumbnailer'
O motor da solução: imagemagick#
O utilitário convert do ImageMagick é capaz de decodificar e extrair a camada achatada de visualização de arquivos PSD:
sudo apt update
sudo apt install imagemagick
A armadilha dos caminhos com espaços e caracteres especiais#
Se as suas pastas de trabalho estão em partições com nomes compostos (por exemplo, /mnt/MEU_DISCO (HD)/Projetos/Design), passar o comando convert diretamente no arquivo .thumbnailer quebra a execução. O shell se perde com os espaços e parênteses, resultando em falha silenciosa.
Para garantir que o caminho seja sempre tratado entre aspas de forma segura, a melhor prática é criar um script wrapper.
Passo 1: Criar o script wrapper seguro#
Crie o arquivo em /usr/local/bin/psd-thumbnailer:
sudo nano /usr/local/bin/psd-thumbnailer
Adicione o script que força a extração apenas da primeira camada ([0]) e formata a saída como PNG:
#!/bin/bash
# $1 = arquivo de entrada
# $2 = dimensao maxima do thumbnail
# $3 = arquivo temporario de saida
/usr/bin/convert "psd:$1[0]" -thumbnail "$2" "png:$3"
Dê permissão de execução:
sudo chmod +x /usr/local/bin/psd-thumbnailer
Por que [0] é vital: Arquivos do Photoshop contêm dezenas de camadas. O seletor [0] diz ao ImageMagick para extrair apenas a imagem composta principal, evitando travamentos ao ler arquivos de centenas de megabytes.
Passo 2: Criar a regra de thumbnailer do sistema#
Crie a definição em /usr/share/thumbnailers/psd.thumbnailer:
sudo nano /usr/share/thumbnailers/psd.thumbnailer
Conteúdo do arquivo:
[Thumbnailer Entry]
TryExec=/usr/local/bin/psd-thumbnailer
Exec=/usr/local/bin/psd-thumbnailer %i %s %o
MimeType=image/vnd.adobe.photoshop;image/x-photoshop;image/photoshop;
3. Falsos jpgs: identificando erros por magic bytes#
Em alguns casos, fotos com extensão .jpg teimam em não exibir miniatura. Ao abrir o Nemo com G_MESSAGES_DEBUG=all, surge o alerta:
(nemo:5241): CinnamonDesktop-WARNING **: Error creating thumbnail for file:///home/user/Downloads/foto.jpg: Erro ao interpretar o arquivo de imagem JPEG (Not a JPEG file: starts with 0x3c 0x3f)
A causa raiz#
Um JPEG autêntico começa com a assinatura hexadecimal 0xFF 0xD8 (Start of Image). A sequência 0x3c 0x3f corresponde a <? em ASCII.
Isso significa que o arquivo renomeado como .jpg era, na verdade, uma página HTML de erro ou script PHP corrompido baixado pelo navegador. O visualizador descarta o arquivo porque o cabeçalho não confere com o padrão binário.
4. Falhas em arquivos SVG (XML malformado)#
Para vetores .svg quebrados, o erro comum é:
** (gdk-pixbuf-thumbnailer:11506): WARNING **: Could not thumbnail 'file:///mnt/storage/logo.svg': XML parse error: Extra content at the end of the document
Esse erro da librsvg acontece quando há lixo de texto concatenado após o fechamento da tag </svg>.
Para sanitizar o SVG via terminal:
# Truncar o arquivo exatamente no fechamento da tag SVG
sed -i.bak '/<\/svg>/q' "/mnt/storage/logo.svg"
# Validar a integridade do XML
xmllint --noout "/mnt/storage/logo.svg"
Checklist de manutenção de miniaturas no Linux#
Quando as miniaturas pararem de carregar no seu desktop:
- Limpe o cache de falha e de miniaturas: O Nemo não tenta renderizar novamente arquivos que já estão registrados na pasta de falhas:
rm -rf ~/.cache/thumbnails/fail/*
rm -rf ~/.cache/thumbnails/large/*
rm -rf ~/.cache/thumbnails/normal/*
nemo -q
- Evite rodar o gerenciador como root: Abrir o Nemo via
sudo nemomuda o dono das pastas de cache pararoot:root, impedindo que o seu usuário comum grave novas miniaturas. - Use wrappers para ferramentas CLI: Ao integrar utilitários externos no
/usr/share/thumbnailers/, sempre encapsule as variáveis em scripts bash com aspas duplas ("$1") para suportar pastas com espaços e parênteses.
Este artigo foi útil?
Deixe uma reação rápida para apoiar o conteúdo:
Este post está licenciado sob CC BY-NC.



Comentários
Participe da discussão abaixo.
0 comentários