Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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.

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.63/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.6 /5 (1364 votos)

Opinião dos Leitores

Diego
03 Jan 2011, 23:03
Blz, valeu a explicação, vou da uma olhada nas referencias pra entender melhor o assunto.

Obrigado pela atenção.
Thiago Cesar Vieira
03 Jan 2011, 20:36
Olá Diego!

É quase isso mesmo! Na verdade a associação de um tipo de arquivo a um programa e a definição de um tipo são 2 assuntos diferentes, mas muito similares.

A associação de um tipo de arquivo a um programa faz a ligação de determinada extensão a um programa. Aí um duplo-clique sobre o arquivo abrirá o programa.
Porém, é diferente de fazer com que o GNOME reconheça um novo tipo.

Fiz o teste aqui.
No Nautilus, peguei o arquivo 'teste.kdb' e renomeei a extensão: 'teste.kdd' (perceba que KDB virou KDD). Imediatamente o ícone mostrado foi alterado para aqueles tipos que o sistema não reconhece.
E as propriedades do arquivo exibia como o tipo do arquivo:
"kdd document (application/x-extension-kdd)"

Aí, segui o que você falou: botão direito do mouse > Open with Other Application > selecionei o aplicativo. Joia. Abriu o programa.
Mas, a criação de um MIME-type pode ser interpretada como uma atividade diferente.
Coloquei umas referências no artigo para que compreendamos melhor esse assunto.

Espero ter ajudado.


Abraço!
Diego
03 Jan 2011, 06:13
Se eu entendi corretamente, já existe uma opção mais fácil no Gnome 2.30, bastando clicar no arquivo com o botão direito >> propriedades >> abrir com: lá você configurar com qual programa esse arquivo deve abrir, e automaticamente todos arquivos do mesmo tipo passarão a abrir com o programa escolhido.
Thiago Cesar Vieira
02 Jan 2011, 20:56
Criando MIME types no KDE4:
http://www.dicas-l.com.br/arquivo/criando_mime_types_no_kde4.php
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis