Al iniciar programas java (como IntelliJ IDEA y Crashplan) en el iniciador de Unity de Natty, se muestran íconos duplicados (ver imagen). Para IntelliJ creé el archivo .desktop, para Crashplan el archivo .desktop se suministra con la aplicación. ¿Hay algo que se pueda cambiar en los archivos .desktop (o en otro lugar) que pueda evitar que esto ocurra? No pude encontrar un informe de error para la unidad en sí, pero programas como Gnome-Do / Docky tienen informes de error y tuvieron que hacer cambios internos en sus aplicaciones para evitar esto.
En esta imagen, el primer ícono es el creado a partir del archivo .desktop y el segundo ícono es después de iniciarlo. El segundo icono desaparece al cerrar la aplicación.
Archivo personalizado de IntelliJ .desktop
#!/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 proporciona el archivo .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]=
Respuestas:
Agregue una cadena StartupWMClass en su archivo .desktop. Use el
xprop
comando para obtener esta clase. Por ejemplo :Más detalles en este hilo (esto es sobre AWN, pero también funciona para Unity)
fuente
StartupWMClass=CrashPlan
pero IntelliJ necesitaba un poco más de convicción. Tuve que usar la información de esto ( blog.jteam.nl/2011/01/09/… ) para que funcione correctamente.-javaagent:agent.jar=IntelliJ_IDEA
al archivojetbrains-idea-ce
para la edición comunitaria. PD, muchas gracias Tim, 451F.jetbrains-idea
es el único, el que desea,sun-awt-X11-XFramePeer
Para Intellij Idea 11 en Ubuntu 11.10 es necesario agregar en el archivo .desktop de la idea la siguiente línea:
fuente
Pude arreglar esto para SQLDeveloper, que es un programa de Java:
Usando xprop (y luego haciendo clic en la ventana SQLDeveloper), encontré la siguiente línea de salida:
Según los comentarios encontrados anteriormente y en https://bugs.launchpad.net/unity/+bug/757991 , agregué la siguiente línea a mi archivo sqldeveloper.desktop local:
fuente
He documentado la solución para Eclipse 4.xy 3.x aquí .
Esta solución es para glx-dock, también conocido como Cairo-dock, pero funciona para todas las barras de tareas en las que se basa
WM_CLASS
.En el caso del eclipse, el lanzamiento también es un proceso de dos pasos.
Básicamente, lo que debe hacer es identificar Eclipse branding plugin.xml aplicable a su versión de Eclipse y modificar la
application name
propiedad. Cuando se crea la ventana principal del banco de trabajo, Jface llamará al SWTDisplay.setName
y esto lo configurará WM_CLASS. Si este es el WM_CLASS declarado para su lanzador, las instancias en ejecución encontrarán su lanzador de base.No te olvides de hacer
eclipse -clean
la primera vez.La navegación también ha mejorado mucho.
fuente
IntelliJ IDEA se inicia mediante un script ($ IDEA_HOME / bin / idea.sh). Cuando se hace clic en su iniciador, se ejecuta el script, que inicia un ejecutable de Java e inmediatamente se cierra. Unity se da cuenta de que la aplicación que inició (el script) ya ha salido, por eso no hay ningún indicador en el primer ícono de IDEA. Sin embargo, hay otra aplicación (desde el ejecutable iniciado por el iniciador) ejecutándose en este momento, y es por eso que se muestra el segundo ícono IDEA.
Espero que la solución para este comportamiento se implemente pronto, pero no es muy sencilla. Tendría que incluir una lista de asociaciones mantenidas a mano entre ventanas y lanzadores con los que deberían estar asociados.
fuente
Para CrashPlan, puede intentar mover el archivo de la aplicación CrashPlan.desktop a / usr / share / aplicaciones. Solo las aplicaciones que viven allí pueden bloquearse en el iniciador.
Luego intente usar el tablero para ejecutar CrashPlan.
Es posible que pueda hacer algo similar con IntelliJ IDEA, pero como está ejecutando un script, no estoy seguro de si funcionará correctamente.
fuente
Ninguna de las otras respuestas funcionó para mí, pero al final encontré una solución aún más simple.
Abra Intellij-Idea, y en la barra superior encuentre el menú desplegable de herramientas . Luego, seleccione el botón Crear entrada de escritorio . Creará una entrada .desktop que funcione correctamente en su
.local/share/applications
carpeta, que debería ser reconocida por cualquier entorno de escritorio que esté utilizando. No hace un ícono duplicado, e incluso puede cambiar el ícono si lo desea.Desafortunadamente, usar el
nosplash
argumento trae de vuelta el problema del ícono duplicado, así que no estoy seguro de cómo solucionarlo.fuente
Después de la instalación de IntelliJ IDEA 05/02/2017 bajo Ubuntu 17.04 (con iconos Numix) que tenía que cambiar la línea
StartupWMClass=jetbrains-idea
aStartupWMClass=jetbrains-idea-ce
en el archivo .desktop del programa para el icono duplicado desaparecería.Supongo que "ce" significa Community Edition que tengo, así que no sé por qué el valor de esta propiedad en el archivo .desktop originalmente no tenía el sufijo "ce".
fuente