De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Criando meu próprio MIME-type

Colaboração: Thiago Cesar Vieira

Data de Publicação: 03 de fevereiro de 2010

Você gostaria de abrir um arquivo em determinado programa apenas com o duplo clique?

Sente falta de um ícone em determinado tipo de arquivo para identificá-los facilmente no seu ambiente gráfico?

Então, esse artigo é para você!

Introdução

MIME-type permite cadastrar determinada extensão de arquivo no ambiente gráfico. Com isso em mãos, é possível associar uma imagem a um arquivo e também abri-lo no aplicativo específico apenas clicando sobre o mesmo, sem precisar abrir o programa e carregá-lo por lá.

O ambiente gráfico GNOME permite fazer tudo isso facilmente.

Como exemplo criaremos o MIME-type para a extensão .kdb (KeePass Password Database). Esse arquivo binário armazena senhas criptografadas.

Keepass Password Safe é o programa (multiplataforma) que manipula esse arquivo. Em meu Linux uso o KeePassX.

Ao abrir o Nautilus (gerenciador de arquivos do GNOME) vemos que nenhum ícone especial é associado aos arquivos *.kdb e clicando sobre esse tipo de arquivo nenhum aplicativo é aberto:

"Could not display myfile.kdb. The file is of an unknown type."

Então, vamos iniciar o trabalho. Abaixo está o procedimento testado no GNOME 2.26.1. Os passos são similares no KDE.

Criando um MIME-type (extensão de arquivo -> MIME-type)

Crie um arquivo chamado keepass.xml em ~/.local/share/mime/packages/.

~/.local/share/mime/ é a base de dados local de MIME-type, válido apenas para o usuário corrente. A base de dados global (válida para todos os usuários da máquina) está em: /usr/share/mime/.

Mais informações sobre configurações globais veja a seção "Configurando (MIME) para todos os usuários" no final desse artigo.

O conteúdo do arquivo XML deve ser esse:

  <?xml version="1.0" encoding="UTF-8"?>
  < mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <!-- Creating Mime-type for KeePass -->
  < mime-type type="application/keepassx">
    < comment xml:lang="en">KeePass Password Database</comment>
    < glob pattern="*.kdb"/>
  </mime-type>
  </mime-info>

Veja que estamos associando a extensão .kdb ao MIME-type application/keepassx.

Atualize a base de dados local de MIME.

  $ update-mime-database  ~/.local/share/mime/

Para ter certeza que o MIME-type foi instalado corretamente vamos fazer algumas verificações:

  1. Confira se o seguinte arquivo foi criado:

    ~/.local/share/mime/application/keepassx.xml
  2. Rode os 2 comandos abaixo utilizando um arquivo .kdb como modelo
      $ xdg-mime query filetype  myfile.kdb
      application/keepassx
    

      $ gnomevfs-info  myfile.kdb
      ...
      MIME type         : application/keepassx
      ...
    
  3. No Nautilus, clique com o botão direito do mouse sobre o arquivo .kdb e clique em "Properties". A propriedade "Type" deverá ter o valor: "KeePass Password Database (application/keepassx)"

Se o novo MIME-type foi criado com sucesso, podemos proceder.

Associando uma imagem a um MIME-type (imagem -> extensão)

Associe o logo do KeePass a esse novo MIME-type criado. Salve essa imagem como keepass.png e rode o comando abaixo.

  $ xdg-icon-resource install  --context mimetypes  --size 64  --mode user  keepass.png application-keepassx

Confira se ocorreu tudo certo. O logo deverá ser copiado para o caminho abaixo.

~/.local/share/icons/hicolor/64x64/mimetypes/application-keepassx.png

Atualize o Nautilus para conferir se o ícone foi associado aos arquivos *.kdb.

Associando um programa a um MIME-type (programa -> extensão)

Para associar determinado aplicativo a um MIME-type, crie o arquivo ~/.local/share/applications/KeePass.desktop e insira o conteúdo abaixo:

  [Desktop Entry]
  Value=1.0
  Name=KeePassX
  Comment=KeePassX Cross Platform Password Manager
  Categories=Utility
  Type=Application
  Exec=/usr/bin/keepassx
  MimeType=application/keepassx
  Icon=keepassx
  Encoding=UTF-8
  StartupNotify=true
  Terminal=false
  NoDisplay=true

Perceba que estamos associando o MIME-type application/keepassx ao programa /usr/bin/keepassx.

Atualize a base de dados local de aplicativos.

  $ update-desktop-database ~/.local/share/applications/

Confira se o arquivo '~/.local/share/applications/mimeinfo.cache' foi atualizado.

Abra o Nautilus e dê 2 cliques sobre o arquivo myfile.kdb. Abriu o programa KeePass? Legal!

Configurando (MIME) para todos os usuários

As configurações acima para criar um MIME-type e ligá-lo a uma aplicação são válidas apenas para um único usuário (chamamos de configurações local).

Para aplicar essas configurações a todos os usuários do sistema (configurações globais), o procedimento é similar.

Alterações globais requerem permissões de root e atuam sobre diferente diretórios. Confira na tabela abaixo.

Local config (apenas para um único usuário) Global config (válida para todos os usuários)
~/.local/share/mime/packages/ /usr/share/mime/packages/
~/.local/share/applications/ /usr/share/applications/
$ xdg-icon-resource install --mode user ... $ xdg-icon-resource install --mode system ...

Isto é: para cadastrar um novo MIME-type a todos os usuários da máquina, copie o XML para /usr/share/mime/packages/ e não para ~/.local/share/mime/packages/.

Instalando MIME-type para o aplicativo desenvolvido pela sua empresa

Perceba que não é apenas em casa que podemos encontramos utilidade a MIME-types. No ambiente corporativo eles também têm seu valor.

Se você trabalha num programa stand-alone e que manipula seus próprios arquivos, seria útil que na instalação do aplicativo você também instalasse o MIME-type para esse novo tipo de arquivo, não é?!

Referências

A documentação do GNOME sobre MIME-types é muito boa. Não é necessário nada a mais.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Thiago Cesar Vieira