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 modifié 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 tels que Gnome-Do / Docky ont des rapports de bogues et ont dû apporter des modifications internes à leurs applications pour empêcher 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 seconde icône disparaît lors de la fermeture de l'application.
Fichier IntelliJ .desktop 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 un 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]=
Réponses:
Ajoutez une chaîne StartupWMClass dans votre fichier .desktop. Utilisez la
xprop
commande pour obtenir cette classe. Par exemple :Plus de détails dans ce fil (ceci concerne AWN, mais fonctionne également pour Unity)
la source
StartupWMClass=CrashPlan
mais IntelliJ avait besoin d’un peu plus de conviction. Je devais utiliser les informations de cela ( blog.jteam.nl/2011/01/09/… ) pour que cela fonctionne correctement.-javaagent:agent.jar=IntelliJ_IDEA
au fichier.jetbrains-idea-ce
pour l'édition communautaire. PS, merci beaucoup Tim, 451F.jetbrains-idea
est l'unique, celui que vous voulez, utilisez-le au lieu desun-awt-X11-XFramePeer
Pour Intellij Idea 11 sous Ubuntu 11.10, il est nécessaire d’ajouter à la ligne suivante du fichier .desktop de l’idée:
la source
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:
Sur la base des commentaires trouvés ci-dessus et dans https://bugs.launchpad.net/unity/+bug/757991 , j'ai ajouté la ligne suivante à mon fichier sqldeveloper.desktop local:
la source
J'ai documenté le correctif pour Eclipse 4.x et 3.x ici .
Cette solution est pour glx-dock, alias Cairo-dock, mais fonctionne pour toutes les barres de tâches qui en dépendent
WM_CLASS
.Dans le cas d’éclipse, le lancement est également un processus en deux étapes.
En gros, vous devez identifier le plugin.xml de la marque Eclipse applicable à votre version d'Eclipse et modifier la
application name
propriété. Lorsque la fenêtre principale du plan de travail est créée, Jface appelle le SWTDisplay.setName
et définit WM_CLASS. S'il s'agit du WM_CLASS déclaré pour votre programme de lancement, les instances en cours d'exécution trouveront leur programme de lancement du dock.N'oubliez pas de le faire
eclipse -clean
la première fois.La tabulation est également beaucoup améliorée.
la source
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 - 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. Il faudrait impliquer une liste maintenue à la main des associations entre les fenêtres et les lanceurs auxquels ils devraient être associés.
la source
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.
Ensuite, essayez 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 que cela fonctionnera correctement.
la source
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 des outils . Ensuite, sélectionnez le bouton Créer une entrée de bureau . Cela créera une entrée .desktop fonctionnant correctement dans votre
.local/share/applications
dossier, 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, utiliser l'
nosplash
argument ramène le problème de l'icône de duplication, donc je ne sais pas comment résoudre ce problème.la source
Après l'installation d'IntelliJ IDEA 2017.2.5 sous Ubuntu 17.04 (avec les icônes Numix), j'ai dû modifier la ligne
StartupWMClass=jetbrains-idea
enStartupWMClass=jetbrains-idea-ce
dans le fichier .desktop du programme afin que l'icône en double disparaisse.J'imagine que "ce" correspond à Community Edition que j'ai, alors je ne sais pas pourquoi la valeur de cette propriété dans le fichier .desktop n'avait pas à l'origine le suffixe "ce".
la source