Alterar tipos MIME

Os ficheiros de origem XML instalados no directório <MIME>/packages pelas aplicações nunca deverão ser alterados manualmente. Em vez disso, deverá ser alterado o ficheiro Overrides.xml. Este tem precedência sobre todos os outros ficheiros XML instalados no mesmo directório packages. Caso seja o autor de uma aplicação, esta regra não se aplica. Deverá criar um novo ficheiro de origem XML e colocá-lo no directório <MIME>/packages apropriado (a sua Makefile tratará disto, claro).

Pode alterar a base de dados MIME para todos os utilizadores no sistema ou para um utilizador específico, dependendo da localização do ficheiro que alterar. Para alterar a base de dados para todos os utilizadores, altere o ficheiro Overrides.xml no directório $XDG_DATA_DIRS/mime/packages. Para alterar para apenas um utilizador específico, altere o ficheiro Overrides.xml no directório $XDG_DATA_HOME/mime/packages.

Após realizadas as alterações, terá sempre de executar a aplicação update-mime-database, indicando a localização do directório da base de dados MIME como primeiro parâmetro.

5.4.1. Adicionar ou Alterar Tipos MIME

Para adicionar um ou mais tipos MIME para todos os utilizadores:

  1. Crie ou altere um ficheiro de origem XML Overrides.xml existente, contendo as definições dos tipos MIME. Para mais informações, consulte Secção 5.3 ― Os ficheiros XML de origem.
  2. Coloque o ficheiro Overrides.xml no directório /usr/share/mime/packages.
  3. Actualize a base de dados MIME executando update-mime-database com a conta de administrador.
    update-mime-database /usr/share/mime

Para adicionar um ou mais tipos MIME para um utilizador específico, siga os mesmos passos, mas coloque o seu ficheiro Overrides.xml no directório ~/.local/share/mime/packages. Adicionalmente, execute o update-mime-database com ~/.local/share/mime/packages como primeiro parâmetro.

5.4.2. Verificar as Alterações

Após ter realizado uma alteração à base de dados MIME e actualizado o seu conteúdo, pode verificar que as alterações tomaram efeito utilizando a aplicação gnomevfs-info. Esta aplicação imprime o tipo MIME e outra informação útil sobre um ficheiro.

Executar o gnomevfs-info sobre um ficheiro SVG dá-lhe o resultado abaixo. Notará que a aplicação por omissão para este tipo MIME é eog.desktop; Iremos discutir as aplicações por omissão em Secção 5.5 ― Registar Aplicações para Tipos MIME.

$ gnomevfs-info mime-diagram.svg
Nome              : mime-diagram.svg
Tipo              : Normal
Tipo MIME         : image/svg+xml
Apl. omissão      : eog.desktop
Tamanho           : 14869
Blocos            : 32
Tam. blocos I/O   : 4096
Local             : SIM
SUID              : NÃO
SGID              : NÃO
Pegajoso          : NÃO
Permissões        : 600644
Contagem Atalhos  : 1
UID               : 1000
GID               : 100
Data de acesso    : Qua Fev 22 18:24:47 2006
Data de alteração : Qua Fev 22 18:24:42 2006
Data de mudança   : Qua Fev 22 18:24:42 2006
Nº dispositivo    : 775
Nº Inode          : 297252
Permite ler       : SIM
Permite escrever  : SIM
Executável        : NÃO
$

Secção 5.4.3 ― Exemplo application/x-newtype apresenta os passos necessários para criar um novo tipo MIME e depois verificar as alterações utilizando o gnomevfs-info.

5.4.3. Exemplo application/x-newtype

Para criar (ou sobrepor) um tipo MIME e verificar as alterações:

  1. Crie um ficheiro novo, vazio, na sua pasta pessoal denominado testing.xyz.

  2. Utilize o gnomevfs-info sobre o ficheiro para detectar o seu tipo MIME.O tipo MIME deste ficheiro deverá ser detectado como text/plain pois não existem padrões glob nem regras mágicas que façam equivalência1.

  3. Crie (ou altere) o ficheiro Overrides.xml tal como descrito em Secção 5.4.1 ― Adicionar ou Alterar Tipos MIME com o conteúdo indicado em Exemplo 5-3.

  4. Actualize a base de dados utilizando o update-mime-database.

  5. Utilize o gnomevfs-info para verificar que a sua alteração tomou efeito. Deverá ver o tipo MIME do ficheiro testing.xyz detectado como application/x-newtype.

    $ gnomevfs-info testing.xyz | grep MIME
    MIME type         : application/x-newtype
    $
Example 5-3Ficheiro Overrides.xml
<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-newtype"><comment>new mime type</comment><glob pattern="*.xyz"/></mime-type>
</mime-info>
1

Quando nenhum padrão glob nem regra mágica equivale a um ficheiro, este é resolvido para o tipo MIME text/plain se contiver dados de texto ou application/octet-stream se contiver dados binários. Se o ficheiro estiver vazio, por omissão será text/plain.