Dans un programme que j'écris, je veux offrir la fonctionnalité d'ouvrir le répertoire où se trouve le fichier que je traite actuellement et de sélectionner automatiquement ce fichier (afin que l'utilisateur n'ait pas besoin de le rechercher).
Je sais que je peux ouvrir un répertoire dans le gestionnaire de fichiers par défaut en utilisant
xdg-open /path/to/directory
Je sais que je peux ouvrir un répertoire dans nautilus et sélectionner un fichier en utilisant
nautilus /path/to/file.txt
Je pensais pouvoir utiliser
xdg-mime query default inode/directory
pour obtenir le gestionnaire de fichiers par défaut et - s'il s'agit de nautilus - appelez-le comme indiqué ci-dessus. Mais, malgré le fait que nautilus est la valeur par défaut sur mon système ( xdg-open
ouvre nautilus et le menu des lieux dans le gnome shell aussi), xdg-mime
revient Thunar.desktop
. (J'ai essayé find / -name Thunar.desktop -mount 2>/dev/null
mais il n'a rien trouvé.)
De plus, je ne sais pas comment ouvrir un répertoire et sélectionner un sous- répertoire dans nautilus (avec l'approche mentionnée ci-dessus, il ouvrirait le sous-répertoire).
Comment puis-je ouvrir un répertoire dans le gestionnaire de fichiers par défaut et sélectionner un fichier dans ce répertoire (si la sélection d'un répertoire était également possible, ce serait bien, mais pour cette application non nécessaire) ou au moins trouver le gestionnaire de fichiers par défaut pour que je peut l'appeler directement?
mimeapps.list
. Pouvez-vous expliquer en quoi consistent ces associations "si une fois tous les fichiers traités, nous n'avons pas encore trouvé d'application par défaut, sélectionnez l'application la plus préférée (selon les associations) qui prend en charge le type"? Connaissez-vous un moyen de savoir quel programme sera démarré automatiquement sans avoir besoin de réimplémenter cet algorithme?Vous voudrez peut-être envisager d'utiliser dbus pour ouvrir votre fichier car il devient rapidement plus populaire.
Le concept d'un gestionnaire de fichiers "par défaut" n'existe vraiment que si vous vous concentrez uniquement sur
xdg-mime
, cependant dans dbus land, et en effet la majorité des applications là-bas, l'histoire prend une tournure différente, et le concept d'un gestionnaire de fichiers "par défaut" cesse d'exister.Voici comment ouvrir un fichier (
/home/me/path/to/folder/or/file
) dans le gestionnaire de fichiers (par défaut?), En utilisant dbus:Ce que cette commande fait est de rechercher tout service dbus qui implémente l'
org.freedesktop.FileManager1
interface et l'appelle avec le chemin d'accès au fichier que vous souhaitez ouvrir.La raison pour laquelle je mets un point d'interrogation après défaut est que dbus ne respecte pas le concept de gestionnaire de fichiers "par défaut"; il ne fait qu'appeler le premier service qu'il trouve qui implémente l'interface et lui permet de gérer l'opération. Maintenant, il se peut que l'application choisie soit votre gestionnaire de fichiers "par défaut", mais ce n'est pas toujours une garantie.
La plupart des applications modernes utiliseront
dbus
par défaut puis reviendront enxdg-mime
cas d'échec de l'appel dbus, c'est donc ce que je vous suggère de faire.la source