46 votes

Comment supprimer les icônes en double pour les programmes java "lancés" dans le lanceur ?

Lors du lancement de programmes Java (comme 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 à modifier dans les fichiers .desktop (ou ailleurs) pour éviter que cela ne se produise ? Je n'ai pas trouvé de rapport de bug pour unity lui-même mais des programmes comme Gnome-Do/Docky ont des fichiers .desktop. insecte rapports et ont dû apporter des modifications internes à leurs applications pour éviter cela.

Duplicate Icons Dans cette image, la première icône est celle créée à partir du fichier .desktop et la deuxième icône est celle créée après le lancement. La deuxième icône disparaît à 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 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]=

48voto

Ben Brocka Points 605

Ajouter un Classe StartupWMC dans votre fichier .desktop. Utiliser 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 de détails dans este thread (ceci concerne AWN, mais fonctionne aussi pour Unity)

9voto

Dan Fitch Points 1596

Pour Intellij Idea 11 sous Ubuntu 11.10 il faut ajouter au fichier .desktop de l'idée la ligne suivante :

StartupWMClass=jetbrains-idea

4voto

Deniz Points 99

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

En utilisant xprop (et en cliquant ensuite 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 observations formulées ci-dessus et dans https://bugs.launchpad.net/unity/+bug/757991 J'ai ajouté la ligne suivante à mon fichier local sqldeveloper.desktop :

StartupWMClass=oracle-ide-boot-Launcher

2voto

Delete Points 723

J'ai documenté la correction pour Eclipse 4.x et 3.x. ici .

Cette solution est pour glx-dock aka Cairo-dock mais fonctionne pour toutes les barres de tâches qui s'appuient sur WM_CLASS .

Dans le cas d'Eclipse, le lancement se fait également en deux étapes.

        enter image description here

Fondamentalement, ce que vous devez faire est d'identifier le plugin.xml de marque Eclipse applicable à votre version d'Eclipse et de modifier le fichier application name propriété. Lorsque la fenêtre principale de l'atelier est créée, Jface appelle la propriété SWT Display.setName et cela vous donnera WM_CLASS. S'il s'agit de la classe WM_CLASS déclarée pour votre lanceur, les instances en cours d'exécution trouveront leur lanceur de dock.

N'oubliez pas de faire eclipse -clean la première fois.

La navigation par onglets est également nettement améliorée.

enter image description here

0voto

Dario Solera Points 2804

IntelliJ IDEA est lancé par un script ($IDEA_HOME/bin/idea.sh). Lorsque l'on clique sur son lanceur, le script est exécuté, ce qui démarre un exécutable Java et le quitte immédiatement. Unity remarque que l'application que vous avez lancée (le script) est déjà sortie - c'est pourquoi il n'y a pas d'indicateur sur la première icône IDEA. Cependant, une autre application (provenant de l'exécutable lancé par le lanceur) est en cours d'exécution en ce moment - et c'est pourquoi la deuxième icône IDEA est affichée.

J'espère que la correction de ce comportement sera bientôt mise en œuvre - mais elle n'est pas très simple. Il faudrait une liste d'associations maintenue à la main entre les Windows et les lanceurs auxquels ils devraient être associés.

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