Nautilus: ouvrir avec le bon logiciel les extensions des programmes

Je sais, le titre n’est pas très clair, mais ça facilitera le travail aux moteurs de recherche…the-nautilus-ii-table-by-marc-fish-05

Il arrive que l’on ait installé des programmes générant des fichiers avec une extension propre à ces programmes, mais que l’accès direct (par double clic par exemple) ouvre le fichier avec un autre logiciel qui n’est pas celui escompté. Pourtant, le programme est bien installé et fonctionnel, mais l’association n’est pas effectuée correctement, et il n’est pas possible de la faire graphiquement.

Dans mon cas, j’ai installé sous Unity Qt4-designer qui fabrique des fichiers avec l’extension .ui mais qui est un programme prévu pour KDE. Or, quand je double clique sur le fichier .ui généré par le programme, c’est firefox qui s’ouvre pour me proposer de télécharger le fichier. Pourtant, dans le menu contextuel, ouvrir avec me propose bien Qt4-designer.

Qu’importe, me dis-je, il suffit d’aller dans les propriétés du fichier, onglet ouvrir avec, et de lui associer le bon logiciel. Sauf que le programme voulu (Qt4-designer) n’apparaît pas dans la liste!

Diable! Pourquoi?

Après quelques (heures de) recherches, c’est simple, encore faut-il le savoir. Le lanceur n’intègre pas la fonction d’ouverture de fichier, et par conséquent Nautilus ne l’affiche pas dans la liste des programmes disponibles.

Corrigeons cette erreur monumentale immédiatement.

Pour tous les utilisateurs du système

Éditez par le moyen de votre choix (avec sudo) le fichier /usr/share/applications/designer-qt4.desktop et modifiez la ligne indiquée ci dessous de

Exec=/usr/bin/designer-qt4

à

Exec=/usr/bin/designer-qt4 %f

Notez le « %f » qui indique que c’est le fichier transmis (celui sélectionné) qu’il faudra ouvrir. Il faudra peut être vous déloguer/reloguer pour que cela soit pris en compte, mais je ne suis même pas sûr que ce soit nécessaire. Retournez dans les propriétés du fichier .ui et vous devriez avoir le programme voulu dans la liste des choix disponibles.

Pour un utilisateur particulier

Admettons que je veuille que cette association ne soit valable que pour l’utilisateur manu. Il me suffit de copier le lanceur de qt4-designer dans le dossier ~/.local/share/applications et d’effectuer la modification indiquée ci dessus dans le fichier que je viens de copier.

cp /usr/share/applications/designer-qt4.desktop /home/manu/.local/share/applications/
gedit /home/manu/.local/share/applications/designer-qt4.desktop

Plus besoin du sudo dans le cas précis, puisque le fichier est dans mon dossier personnel. Ça fonctionne pour tous les logiciels et toutes les extensions, à condition qu’il existe un fichier .desktop dans le dossier des applications.

C’est une bricole, mais ça empoisonne la vie quand le comportement n’est pas celui attendu. En espérant que ça puisse vous servir.