Comment puis-je supprimer les icônes en double pour les programmes Java "lancés" dans le programme de lancement?

45

Lors du lancement de programmes Java (tels que IntelliJ IDEA et Crashplan) dans le lanceur Unity de Natty, des icônes en double sont affichées (voir l’image). Pour IntelliJ, j'ai créé le fichier .desktop. Pour Crashplan, le fichier .desktop est fourni avec l'application. Y a-t-il quelque chose qui peut être changé dans les fichiers .desktop (ou ailleurs) qui peut empêcher cela de se produire? Je ne pouvais pas trouver de rapport de bogue pour l'unité elle-même, mais des programmes comme Gnome-Do / Docky ont bug signale et a dû apporter des modifications internes à ses applications pour éviter cela.

Dans cette image, la première icône est celle créée à partir du fichier .desktop et la deuxième après son lancement. La deuxième icône disparaît lors de la fermeture de l'application.

Fichier .desktop IntelliJ personnalisé

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/idea/bin/idea128.png
Name[en_US]=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Name=IntelliJ IDEA
Icon=/opt/idea/bin/idea128.png
StartupNotify=true

Crashplan fournit le fichier .desktop

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=CrashPlan
Categories=;
Comment=CrashPlan Desktop UI
Comment[en_CA]=CrashPlan Desktop UI
Exec=/usr/local/crashplan/bin/CrashPlanDesktop
Icon=/usr/local/crashplan/skin/icon_app_64x64.png
Hidden=false
Terminal=false
Type=Application
GenericName[en_CA]=
    
posée Tim 22.04.2011 - 15:59
la source

8 réponses

46

Ajoutez une chaîne StartupWMClass dans votre fichier .desktop. Utilisez la commande xprop pour obtenir cette classe. Par exemple:

$ xprop|grep WM_CLASS
 WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "java-lang-Thread"

$ cat /usr/share/applications/PHPStorm.desktop | grep StartupWM
StartupWMClass=sun-awt-X11-XFramePeer

Plus d'informations sur ce fil (ceci concerne AWN, mais fonctionne également pour Unity)

    
réponse donnée 451F 05.05.2011 - 14:35
la source
8

Pour Intellij Idea 11 sous Ubuntu 11.10, il est nécessaire d’ajouter à la ligne suivante du fichier .desktop de l’idée:

StartupWMClass=jetbrains-idea
    
réponse donnée topr 17.12.2011 - 15:19
la source
3

J'ai pu résoudre ce problème pour SQLDeveloper, un programme java:

En utilisant xprop (puis en cliquant sur la fenêtre SQLDeveloper), j'ai trouvé la ligne de sortie suivante:

WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "oracle-ide-boot-Launcher"

Sur la base des commentaires trouvés ci-dessus et dans le lien , j'ai ajouté la ligne suivante à mon sqldeveloper local. fichier de bureau:

StartupWMClass=oracle-ide-boot-Launcher
    
réponse donnée Corey 30.11.2011 - 18:20
la source
1

J'ai documenté le correctif pour Eclipse 4.x et 3.x, ici .

Cette solution concerne glx-dock, alias Cairo-dock, mais fonctionne pour toutes les barres de tâches reposant sur WM_CLASS .

Dans le cas d’éclipse, le lancement est également un processus en deux étapes.

Engros,vousdevezidentifierleplugin.xmldelamarqueEclipseapplicableàvotreversiond'Eclipseetmodifierlapropriétéapplicationname.Lorsquelafenêtreprincipaleduplandetravailestcréée,JfaceappelleleSWTDisplay.setNameetdéfinitWM_CLASS.S'ils'agitduWM_CLASSdéclarépourvotreprogrammedelancement,lesinstancesencoursd'exécutiontrouverontleurprogrammedelancementdudock.

N'oubliezpasdefaireeclipse-cleanlapremièrefois.

Latabulationestégalementbeaucoupaméliorée.

    
réponse donnée Delete 30.05.2013 - 08:37
la source
0

IntelliJ IDEA est lancé par un script ($ IDEA_HOME / bin / idea.sh). Lorsque le lanceur est cliqué, le script est exécuté, ce qui lance un exécutable java et se termine immédiatement. Unity remarque que l'application que vous avez démarrée (le script) est déjà terminée. C'est pourquoi il n'y a pas d'indicateur sur la première icône IDEA. Cependant, une autre application (à partir de l'exécutable démarré par le programme de lancement) est en cours d'exécution - et c'est pourquoi la deuxième icône IDEA est affichée.

J'espère que la solution à ce problème sera bientôt mise en œuvre - mais ce n'est pas très simple. Cela devrait impliquer une liste maintenue à la main des associations entre les fenêtres et les lanceurs auxquels ils devraient être associés.

    
réponse donnée Weirdfellow 02.05.2011 - 12:08
la source
0

Pour CrashPlan, vous pouvez essayer de déplacer votre fichier d'application CrashPlan.desktop vers / usr / share / applications. Seules les applications qui y résident peuvent être verrouillées dans le lanceur.

sudo mv ~/Desktop/CrashPlan.desktop /usr/share/applications/.

Essayez ensuite d’utiliser le tiret pour exécuter CrashPlan.

Vous pourrez peut-être faire quelque chose de similaire avec IntelliJ IDEA, mais comme il exécute un script, je ne suis pas sûr qu'il fonctionnera correctement.

    
réponse donnée idbrii 04.05.2011 - 02:06
la source
0

Aucune des autres réponses n'a fonctionné pour moi, mais j'ai finalement trouvé une solution encore plus simple.

Ouvrez Intellij-Idea et, dans la barre supérieure, recherchez le menu déroulant outils . Ensuite, sélectionnez le bouton Créer une entrée de bureau . Cela créera une entrée .desktop fonctionnant correctement dans votre dossier .local/share/applications , qui devrait être reconnue par l’environnement de bureau que vous utilisez. Cela ne crée pas une icône en double et vous pouvez même changer l'icône si vous le souhaitez.

Malheureusement, l'utilisation de l'argument nosplash soulève le problème de l'icône de duplication. Je ne sais donc pas comment résoudre ce problème.

    
réponse donnée rusins 17.03.2016 - 17:25
la source
0

Après avoir installé IntelliJ IDEA 2017.2.5 sous Ubuntu 17.04 (avec les icônes Numix), je devais changer la ligne StartupWMClass=jetbrains-idea en StartupWMClass=jetbrains-idea-ce dans le fichier .desktop du programme afin que l'icône en double disparaisse.

Je suppose que "ce" représente Community Edition, ce qui est mon cas. Je ne sais donc pas pourquoi la valeur de cette propriété dans le fichier .desktop n'avait pas à l'origine le suffixe "ce".

    
réponse donnée tom 19.10.2017 - 11:27
la source

Lire d'autres questions sur les étiquettes