Como o Linux decide sobre um aplicativo padrão?

6

Eu sei que cada programa que pode abrir arquivos tem uma entrada na área de trabalho em /usr/share/applications e que os padrões para cada tipo MIME são armazenados em /usr/share/applications/defaults.list e ~/.local/share/applications/mimeapps.list . No meu sistema, o comando que atualiza essas listas é update-mime-database . No entanto, não consegui encontrar uma resposta no google sobre como este programa decide qual aplicativo se torna padrão se houver vários instalados que possam manipular esse arquivo. Eu pergunto porque quando eu instalei o Geany no meu sistema recentemente, todos os arquivos de código fonte começaram a abrir no Geany, ao invés de no meu editor de texto regular, e eu fiquei imaginando como foi feita a escolha de substituir o meu editor regular pelo Geany. Além disso, sei que posso alterar cada arquivo de volta para o meu editor regular manualmente, mas existe uma maneira de dar um certo padrão ao programa para todos os tipos de arquivos que ele pode abrir? Essencialmente como o gerenciador de aplicativos padrão do Windows, onde você pode ver todos os tipos de arquivos que qualquer programa pode abrir e selecionar ou desmarcar todos eles.

Eu também conheço o utilitário xdg-mime , mas eu não pareço ser o que escolhe entre vários programas possíveis para abrir um arquivo, ou para registrar novamente como padrão todos os tipos de arquivos de um determinado programa.

    
por AniDev 25.09.2013 / 04:40

1 resposta

3

Primeiro de tudo, o Linux (o sistema operacional) não escolhe nada no que você descreve (então o título é bastante desligado), é o aplicativo em que você está clicando no arquivo ou o ambiente de área de trabalho que faz o escolha baseada em lógica e informação.

Você mencionou update-mime-database, que leva ao Gnome com algum googling, e esta página especificamente:

link (que é apenas uma réplica disso: link )

Each application that wishes to contribute to the MIME database will install a single XML file, named after the application, into one of the three /packages/ directories (depending on where the user requested the application be installed). After installing, uninstalling or modifying this file, the application MUST run the update-mime-database command, which is provided by the freedesktop.org shared database.

update-mime-database is passed the mime directory containing the packages subdirectory which was modified as its only argument. It scans all the XML files in the packages subdirectory, combines the information in them, and creates a number of output files.

E aqui está a pegadinha:

Where the information from these files is conflicting, information from directories lower in the list takes precedence. Any file named Override.xml takes precedence over all other files in the same packages directory. This can be used by tools which let the user edit the database to ensure that the user's changes take effect.

Assim, pode ser que, por causa do fato de Geany aparecer "mais abaixo na lista", tenha precedência. Mais abaixo aqui pode significar qualquer coisa, eu acho, desde a ordem alfabética dos respectivos arquivos até a ordenação entre algumas listas de aplicativos predefinidos.

Essa página também descreve o formato dos arquivos e também menciona que ferramentas adicionais podem estar disponíveis para manipular o banco de dados (Override.xml especificamente). Quanto a se tais ferramentas existem, pode valer outra pergunta.

Editar: Essa resposta sobre o uso de mimeopen também pode ser útil, mesmo que talvez não se aplique ao seu gerenciador de arquivos específico: link

    
por 25.09.2013 / 08:00