6 votes

Comment Linux décide-t-il de l'application par défaut ?

Je sais que chaque programme qui peut ouvrir des fichiers a une entrée sur le bureau sous la rubrique /usr/share/applications et que les valeurs par défaut pour chaque mimetype sont stockées dans le fichier /usr/share/applications/defaults.list y ~/.local/share/applications/mimeapps.list . Sur mon système, la commande qui met à jour ces listes est la suivante update-mime-database . Cependant, je n'ai pas pu trouver de réponse sur google sur la façon dont ce programme décide quelle application devient par défaut s'il y a plusieurs installés qui peuvent gérer ce fichier. Je demande parce que lorsque j'ai installé Geany sur mon système récemment, tous les fichiers de code source ont commencé à s'ouvrir dans Geany, au lieu de mon éditeur de texte habituel, et je me demandais comment le choix de remplacer mon éditeur habituel par Geany a été fait. De plus, je sais que je peux changer chaque fichier pour revenir à mon éditeur habituel manuellement, mais existe-t-il un moyen de donner à un certain programme une valeur par défaut pour tous les types de fichiers qu'il peut ouvrir ? Essentiellement comme le gestionnaire d'applications par défaut de Windows, où vous pouvez voir tous les types de fichiers qu'un programme peut ouvrir, et les sélectionner ou les désélectionner tous.

Je connais aussi le xdg-mime mais cela ne semble pas être ce qui choisit entre plusieurs programmes possibles pour ouvrir un fichier, ou pour réenregistrer par défaut tous les types de fichiers pour un certain programme.

4voto

zagrimsan Points 1039

Tout d'abord, Linux (le système d'exploitation) ne choisit rien dans ce que vous décrivez (le titre est donc plutôt faux), c'est soit l'application sur laquelle vous cliquez, soit l'environnement de bureau qui fait le choix en fonction de la logique et des informations.

Vous avez mentionné update-mime-database, ce qui mène à Gnome avec un peu de google, et cette page en particulier :

https://developer.gnome.org/shared-mime-info-spec/ (qui est juste une réplique de ceci : http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html )

Chaque application qui souhaite contribuer à la base de données MIME va installera un seul fichier XML, portant le nom de l'application, dans l'une des bases de données MIME. l'un des trois répertoires /packages/ (en fonction de l'emplacement où l'utilisateur l'utilisateur a demandé que l'application soit installée). Après l'installation, désinstallation ou modification de ce fichier, l'application DOIT exécuter la commande update-mime-database, qui est fournie par la base de données partagée de freedesktop.org base de données partagée.

update-mime-database reçoit le répertoire mime contenant les fichiers contenant le sous-répertoire packages qui a été modifié comme seul argument. Il parcourt tous les fichiers XML du sous-répertoire des paquets, combine les informations qu'ils contiennent, et crée un certain nombre de fichiers de sortie.

Et voilà le hic :

Lorsque les informations provenant de ces fichiers sont contradictoires, les informations des répertoires inférieurs dans la liste sont prioritaires. Tout fichier nommé Override.xml a la priorité sur tous les autres fichiers du même répertoire de répertoire packages. Cela peut être utilisé par des outils qui permettent à l'utilisateur de modifier la base de données pour s'assurer que les modifications apportées par l'utilisateur prennent effet.

Il se pourrait donc que, parce que Geany se trouve être "plus bas dans la liste", il soit prioritaire. Plus bas dans la liste peut signifier n'importe quoi, je suppose, de l'ordre alphabétique des fichiers respectifs à l'ordre dans une liste d'applications prédéfinie.

Cette page décrit également le format des fichiers, et mentionne également que des outils supplémentaires pourraient être disponibles pour manipuler la base de données (Override.xml spécifiquement). Quant à savoir si de tels outils existent, c'est une autre question.

Edit : Cette réponse sur l'utilisation mimeopen peut également vous être utile, même si elle ne s'applique pas à votre gestionnaire de fichiers de prédilection : https://superuser.com/a/573488/243625

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X