Como é determinado qual aplicativo deve abrir um arquivo do tipo mime específico?

4

Eu vi a seguinte pergunta , mas não posso comentar ainda. Então decidi criar um separado.

Eu tenho os dois transmission e deluge instalados. E não tenho associação para o tipo application/x-bittorrent mime, com base no conteúdo de /usr/share/gnome/applications/defaults.list e ~/.local/share/applications/mimeapps.list . Mas parece que a extensão .torrent tem associação e é transmission . É quando eu clico duas vezes em um arquivo .torrent , transmission é aberto. O mesmo acontece quando abro em chromium .

A questão é como é que é transmission ? Por que não deluge ? Ambos têm esse tipo de mime em seus arquivos .desktop . As associações são armazenadas em algum outro lugar?

UPD

$ egrep bittorrent /usr/share/applications/mimeapps.list
egrep: /usr/share/applications/mimeapps.list: No such file or directory
$ egrep bittorrent /usr/share/applications/mimeinfo.cache
application/x-bittorrent=transmission-gtk.desktop;deluge.desktop;
$ egrep bittorrent /usr/share/applications/defaults.list

$ egrep bittorrent /home/yuri/.local/share/applications/mimeapps.list
$ egrep bittorrent /home/yuri/.local/share/applications/defaults.list
egrep: /home/yuri/.local/share/applications/defaults.list: No such file or directory

O padrão é transmission . A alteração da ordem em /usr/share/applications/mimeinfo.cache altera o aplicativo padrão. Provavelmente não se deve confiar nesse comportamento.

    
por x-yuri 28.09.2013 / 14:22

2 respostas

2

Existem duas formas de associação entre um tipo MIME e um arquivo .desktop .

Método 1

A primeira maneira é através dos arquivos de configuração *.list MIME (existem muitos no sistema, veja abaixo). Por exemplo, uma entrada típica em ~/.local/share/applications/mimeapps.list pode ser:

[Default Applications]
application/x-bittorrent=transmission.desktop;deluge.desktop

Isso significa que o aplicativo preferido é transmission , se não for encontrado, a segunda opção será deluge .

Método 2

A segunda maneira é através do arquivo .desktop em si. O aplicativo anuncia quais tipos MIME podem ser abertos. Por exemplo, em transmission-gtk.desktop , temos a seguinte linha

MimeType=application/x-bittorrent;x-scheme-handler/magnet;

que indica que este programa pode manipular esses dois tipos MIME.

Qual aplicativo usar?

A associação entre tipos MIME e Aplicativos é definida pela freedesktop.org padrões. Aqui estão as etapas executadas ao determinar qual aplicativo (por exemplo, qual arquivo .desktop ) deve ser iniciado para um determinado tipo MIME.

Etapa 1: Procure por uma associação nos arquivos de configuração do MIME. A ordem de pesquisa é a seguinte:

$XDG_CONFIG_HOME/$desktop-mimeapps.list    
$XDG_CONFIG_HOME/mimeapps.list    
$XDG_CONFIG_DIRS/$desktop-mimeapps.list    
$XDG_CONFIG_DIRS/mimeapps.list    
$XDG_DATA_HOME/applications/$desktop-mimeapps.list    
$XDG_DATA_HOME/applications/mimeapps.list    
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list   
$XDG_DATA_DIRS/applications/mimeapps.list

Etapa 2: Depois que todos os níveis tiverem sido verificados, se nenhuma entrada puder ser encontrada, as implementações poderão selecionar qualquer um dos arquivos .desktop associados ao tipo MIME, considerando-os adicionados e removidos associações (que existem nos arquivos de configuração MIME).

Embora você não tenha arquivos de configuração MIME, o motivo pelo qual o transmission está sendo usado é devido ao Passo 2 , conforme definido pelo padrão. Verifique seu arquivo transmission-gtk.desktop para ver se anuncia sua capacidade de abrir torrents.

Sugiro ler o documento vinculado para um entendimento completo.

    
por jesterII 27.08.2014 / 02:46
0

Você pode escolher o padrão em um arquivo Propriedades > Abra com [tab]; por exemplo, para um arquivo de vídeo:

Você pode simplesmente selecionar seu aplicativo preferido e defini-lo como padrão.

Você também pode ver a lista aberta com ao clicar com o botão direito do mouse no arquivo. Clicar duas vezes abre-o com o padrão.

    
por AliNâ 28.09.2013 / 17:07