Ubuntu – Deux icônes sur Unity Launcher lors du lancement d’une application non standard [duplicate]

J’ai une application qui ne provient d’aucun repo Ubuntu (ni officielle, ni PPA) mais disponible en tgz et censée être déballée et prête à l’emploi. Pour être précis, c’est LightTable.

Le problème est que l’application lorsqu’elle est lancée affiche sa propre icône dans Unity Launcher. Après avoir fait une coutume .desktop fichier et en plaçant un raccourci sur Unity Launcher (en le faisant glisser depuis le tableau de bord) et en le lançant, je vois deux icônes – une placée par moi et une autre avec une application réelle.

C’est le .desktop Contenu:

 [Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/LightTable/LightTable
Name=Light Table
Icon=/opt/LightTable/core/img/lticon.png
 

Encore une chose. le /opt/LightTable/LightTable est le fichier de script bash et, éventuellement, /opt/LightTable/ltbin est en cours de lancement. Je pense que c’est le problème, mais je ne sais pas comment résoudre le problème.

Meilleure réponse

  • Vous devez ajouter une chaîne StartupWMClass dans votre fichier .desktop. Il s’agit d’une chaîne qui définit dans quelle classe l’application est regroupée dans le lanceur Unity au démarrage.

    La solution est d’ajouter StartupWMClass à votre fichier de bureau. Vous devez d’abord trouver la classe appropriée pour votre application.

    C’est expliqué ici (Merci à @chaos).

    Ouvrez la fenêtre de votre table lumineuse et saisissez le terminal:

     xprop WM_CLASS
     

    Cliquez ensuite sur la fenêtre LIght Table.

    Pour le terminal gnome WM_CLASS devrait être quelque chose comme

     WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
     

    Ainsi, toutes les fenêtres avec WM_CLASS « gnome-terminal » et « Gnome-terminal » sont regroupées. Pour la table lumineuse, vous verrez une classe différente. Choisissez-en un et souvenez-vous-en.

    Après avoir trouvé votre classe de programme, ajoutez ceci à votre fichier .desktop:

     StartupWMClass=CLASS