1. Arquivo arbitrário ⇒ tipo MIME:
O banco de dados shared-mime-info é consultado para determinar seu tipo MIME , com base na extensão do arquivo e / ou nos cabeçalhos "mágicos" conhecidos. Eu acho que até o Thunderbird passa por essa etapa, descartando qualquer tipo de MIME que tenha sido declarado pelo email.
O banco de dados consiste em arquivos XML "fonte", que não são usados diretamente, mas compilados em arquivos "cache" por update-mime-database
.
2. Tipo MIME ⇒ app .desktop file:
Os arquivos mimeapps.list do usuário são pesquisados em relação ao explicitamente associado < href="https://specifications.freedesktop.org/mime-apps-spec/1.0.1/ar01s04.html"> aplicativo padrão , apontando para o arquivo .desktop de um aplicativo. (Permite qualquer aplicativo e não é limitado pelos MimeTypes declarados nesse arquivo .desktop.)
(Na CLI, xdg-mime query default <type>
e xdg-mime default <app> <type>
podem ser usados para manipular essa lista convenientemente. No Xfce, você provavelmente pode fazer o mesmo no Thunar - a janela "Propriedades" do arquivo PDF permitirá que você selecione o aplicativo padrão para todos arquivos PDF.)
Se não houver uma associação explícita, uma lista de aplicativos é criada a partir dos arquivos .desktop (consulte a seção a seguir) e também de "associações adicionadas" em mimeapps.list ( Algoritmo completo aqui ) e o aplicativo "mais preferido" é iniciado.
3. App .desktop file ⇒ programa executável:
Todos os aplicativos "associativos" devem ter um arquivo .desktop
( desktop-entry-spec ) em um dos locais padrão (~ / .local / share / applications /, / usr / share / applications).
O arquivo .desktop deve declarar a que MimeTypes ele deseja se associar por padrão. Um cache de pesquisa inversa (arquivo MimeType ⇒ .desktop) é mantido automaticamente em mimeinfo.cache
nos mesmos locais. Essas associações podem ser substituídas pela Seção 2 acima.