Python: obtenez la liste des applications associées au fichier (Linux)
Question
Je fais une application dans Python et je dois fournir le menu "ouvert avec" à l'utilisateur. Actuellement, j'analyse /usr/share/applications/mimeinfo.cashe
et ~/.local/share/applications/mimeapps.list
mais avec des résultats très mauvais. Nautilus a plus d'entrées dans le menu "Ouvrir avec".
Connaissez-vous une meilleure façon d'obtenir la liste des applications associées au fichier?
Éditer:
Il existe un moyen plus simple d'utiliser gnomevfs
module.
mime_type = gnomevfs.get_mime_type(filename)
application_list = gnomevfs.mime_get_all_applications(mime_type)
Dans la liste renvoyée, vous obtenez le nom de l'application, le nom de l'icône, le fichier de configuration et bien d'autres choses.
La solution
J'ai trouvé une solution un peu plus élégante. Dans gnomevfs
module il y a une fonction nommée mime_get_all_applications
qui renvoie la liste appropriée des applications associées.
Plus d'informations peuvent être trouvées ici.
EDIT: Depuis le moment où cette réponse a été écrite, GnomeVFS a été marquée comme obsolète. Gio fournit désormais cette fonctionnalité avec des méthodes comme app_info_get_all
et app_info_get_for_type
.
Autres conseils
GNOME stocke ses listes d'applications dans ces deux fichiers:
/etc/gnome/defaults.list
~/.local/share/applications/mimeapps.list