1 votes

Mon fichier .desktop personnalisé apparaît dans Dash comme un fichier texte

J'ai récemment installé MATLAB sur mon ordinateur. J'ai constaté que, bien que je puisse facilement démarrer MATLAB depuis le terminal, il n'y avait pas de fichier exécutable sur lequel double-cliquer pour l'exécuter. J'ai donc créé un script Bash pour exécuter MATLAB, puis créé un fichier .desktop et l'ai enregistré dans /usr/share/applications/. Voici le contenu de ce fichier .desktop :

[Desktop Entry]
Type=Application
Name=MATLAB
Hidden=false
Exec=Desktop/Programs/scripts/runMatlab.sh
Icon=/usr/share/icons/matlabIcon.jpg
Categories=Application;

Si je regarde à l'intérieur de /usr/share/applications/, je vois effectivement un fichier exécutable avec le nom MATLAB et l'icône appropriée, et si je double-clique dessus, MATLAB s'exécutera très bien. Cependant, si je saisis MATLAB dans Dash, matlab.desktop apparaît comme un fichier texte. Il n'a pas le bon nom (MATLAB) ni l'icône correcte, et si je clique dessus, Gedit s'ouvrira au lieu que le fichier s'exécute.

Comment puis-je corriger cela ?

Je suis d'ailleurs sous Ubuntu 14.04.

1voto

Jacob Vlijm Points 78990

Si vous examinez attentivement Dash, vous découvrirez que matlab.desktop n'apparaît pas en tant qu'application, mais le fichier matlab.desktop apparaît dans les recherches, ou les récemment utilisés, puisque vous l'avez évidemment édité.

L'erreur

La raison est que Dash ne le considère pas comme un fichier valide .desktop pour (au moins) la raison suivante :

  • Vous ne devriez pas utiliser des chemins relatifs dans un fichier .desktop (Desktop/Programs/scripts/runMatlab.sh est relatif), mais des chemins absolus.

D'autres raisons possibles pourraient être un chemin d'icône invalide ou le fait que vous appelez le script sans le sh précédent (si le script n'est pas exécutable, mais étant donné les autres informations dans votre question, cela ne semble pas être le cas).

Remarques

  • Autre chose est que si vous stockez le script dans ce qui semble être un répertoire local, vous ne devriez pas stocker le fichier .desktop dans /usr/share/applications, mais dans ~/.local/share/applications.

  • Il n'est pas nécessaire de rendre un fichier .desktop exécutable si vous l'exécutez depuis Dash ou le Lanceur. La plupart des lanceurs, que ce soit dans /usr/share/applications ou ~/.local/share/applications, ne le sont pas. Seulement si vous le localisez et l'exécutez depuis votre bureau.

1voto

Byte Commander Points 99026

Tout d'abord, déplacez le fichier .desktop dans /usr/share/applications/ ( lanceurs globaux, nécessite des permissions root pour déplacer le fichier) ou dans ~/.local/share/applications/ (uniquement pour l'utilisateur actuel).*
ÉDITION: Lorsque vous exécutez desktop-file-install, cela n'est pas nécessaire car il copie automatiquement le fichier dans /usr/share/applications/

Ensuite, après avoir vérifié votre fichier .desktop pour les erreurs avec desktop-file-install nomdufichier.desktop (pas de sortie signifie pas d'erreurs, mais même quelques avertissements peuvent ne pas empêcher le lanceur de fonctionner),
vous l'ajoutez au tableau de bord Unity en exécutant sudo desktop-file-install nomdufichier.desktop (ÉDITION: privilèges root requis pour accéder à /usr/share/applications/ où les lanceurs globaux sont stockés). Veuillez noter que cette commande pourrait ajouter quelques lignes au fichier .desktop d'origine.

J'espère que cela a résolu votre problème. Salutations!
(Source: https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles)

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