web-dev-qa-db-fra.com

Sublime Text 3 n'est pas disponible chez Dash malgré la possession d'un fichier .desktop

Après avoir installé le fichier .deb de Sublime Text 3, la description du paquetage indiquait quelque chose du type "Ceci doit être exécuté sur le terminal". Alors je me suis dit, "Pas de problème, Sublime, je vais créer un fichier .desktop pour vous ... Hein?"

Comme il apparaît, Sublime Text a déjà un fichier .desktop dans /usr/share/applications mais je ne comprends pas pourquoi Dash ne peut pas le voir lors de la recherche?

[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;

Ai-je mentionné que je suis un noob Linux?

3
cnic

Que faire si une application n'apparaît pas dans Dash ou ne peut pas être lancée à partir de Dash après l'avoir installée?

Il se peut que vous ayez installé une application, vous êtes certain que celle-ci est représentée par un fichier _.desktop_ dans _/usr/share/applications_, mais il ne s'affiche pas ou l'icône du lanceur ne fait pas ce qu'elle est censé faire.

  1. Déconnexion et retour
    Bien qu’une application devrait apparaisse immédiatement après l’installation, les nouveaux fichiers _.desktop_ ne sont pas trouvés immédiatement. En vous déconnectant et en vous déconnectant, Unity est obligé de relire les répertoires _~/.local/share/applications_ et _/usr/share/applications_ pour les lanceurs valides.
  2. Vérifier le fichier global desktop
    Si cela ne résout pas le problème, accédez à _/usr/share/applications_ et faites glisser le fichier _.desktop_ correspondant vers le lanceur, puis cliquez dessus.
    Si l'application est lancée correctement, vous pouvez être pratiquement certain que vous avez un fichier local _.desktop_, représentant l'application, en _~/.local/share/applications_. Étant donné que les fichiers locaux _.desktop_ remplacent leur version globale, le fichier local est probablement incorrect ou obsolète.
    Pour le trouver, ouvrez un terminal et exécutez:

    _grep -iR <application> ~/.local/share/applications/
    _

    où _<application>_ est (bien sûr) le nom de l'application.

    Supprimez les versions locales possibles, déconnectez-vous et reconnectez-vous.

    Si l'application pas se lance correctement, votre fichier global _.desktop_ est incorrect, ce qui est hautement improbable, mais dans ce cas, il peut avoir plusieurs causes.

Explication

Si vous avez des lanceurs dupliqués (fichiers _.desktop_, représentant la même application, Unity choisit le local lors de la connexion. Pendant une session, cela ne change pas normalement, sauf vous obligez Unity à utiliser un lanceur spécifique en le faisant glisser vers le lanceur Unity.

Il s’agit généralement du moyen le plus rapide et le plus fiable de vérifier la validité du fichier global _.desktop_, et de détecter l’existence de versions locales, plutôt que de chercher dans _~/.local/share/applications_.

5
Jacob Vlijm