Ao iniciar programas java (como IntelliJ IDEA e Crashplan) no iniciador do Natty's Unity, são exibidos ícones duplicados (veja a imagem). Para o IntelliJ, criei o arquivo .desktop, para o Crashplan, o arquivo .desktop é fornecido com o aplicativo. Existe algo que pode ser alterado nos arquivos .desktop (ou em outro lugar) que pode impedir que isso ocorra? Não consegui encontrar um relatório de erro para a própria unidade, mas programas como o Gnome-Do / Docky têm relatórios de erros e tiveram que fazer alterações internas em seus aplicativos para evitar isso.
Nesta imagem, o 1º ícone é aquele criado a partir do arquivo .desktop e o segundo ícone é depois de iniciá-lo. O segundo ícone desaparece ao fechar o aplicativo.
Arquivo .desktop personalizado do IntelliJ
#!/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 fornece arquivo .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]=
Respostas:
Adicione uma seqüência de caracteres StartupWMClass ao arquivo .desktop. Use o
xprop
comando para obter esta classe. Por exemplo :Mais detalhes neste tópico (sobre o AWN, mas também funciona para o Unity)
fonte
StartupWMClass=CrashPlan
mas o IntelliJ precisava de um pouco mais de convencimento. Eu tive que usar informações deste ( blog.jteam.nl/2011/01/09/… ) para fazê-lo funcionar corretamente.-javaagent:agent.jar=IntelliJ_IDEA
ao arquivojetbrains-idea-ce
para a Community Edition. PS, muito obrigado Tim, 451F.jetbrains-idea
é o único, o que você deseja, use-o em vez desun-awt-X11-XFramePeer
Para o Intellij Idea 11 no Ubuntu 11.10, é necessário adicionar no arquivo .desktop da ideia a seguinte linha:
fonte
Consegui consertar isso no SQLDeveloper, que é um programa java:
Usando xprop (e clicando na janela SQLDeveloper), encontrei a seguinte linha de saída:
Com base nos comentários encontrados acima e em https://bugs.launchpad.net/unity/+bug/757991 , adicionei a seguinte linha ao meu arquivo sqldeveloper.desktop local:
fonte
Documentei a correção para o Eclipse 4.xe 3.x aqui .
Esta solução é para o glx-dock, também conhecido como Cairo-dock, mas funciona para todas as barras de tarefas que dependem
WM_CLASS
.No caso do eclipse, o lançamento também é um processo de duas etapas.
Basicamente, o que você precisa fazer é identificar o plugin.xml de marca do Eclipse aplicável à sua versão do Eclipse e modificar a
application name
propriedade. Quando a janela principal do ambiente de trabalho é criada, o Jface chama o SWTDisplay.setName
e isso define WM_CLASS. Se este for o WM_CLASS declarado para o iniciador, as instâncias em execução encontrarão o iniciador do dock.Não se esqueça de fazer
eclipse -clean
na primeira vez.Tabular também é muito melhorado.
fonte
O IntelliJ IDEA é iniciado por um script ($ IDEA_HOME / bin / idea.sh). Quando o iniciador é clicado, o script é executado, que inicia um executável java e sai imediatamente. O Unity percebe que o aplicativo que você iniciou (o script) já saiu - é por isso que não há indicador no primeiro ícone da IDEA. No entanto, há outro aplicativo (do executável iniciado pelo iniciador) em execução no momento - e é por isso que o segundo ícone do IDEA é exibido.
Espero que a correção desse comportamento seja implementada em breve - mas não é muito simples. Teria que envolver uma lista de associações mantidas à mão entre janelas e lançadores aos quais eles deveriam estar associados.
fonte
Para o CrashPlan, você pode tentar mover o arquivo de aplicativo CrashPlan.desktop para / usr / share / applications. Somente aplicativos que moram lá podem ser bloqueados no iniciador.
Em seguida, tente usar o traço para executar o CrashPlan.
Você pode fazer algo semelhante com o IntelliJ IDEA, mas como ele está executando um script, não tenho certeza se ele funcionará corretamente.
fonte
Nenhuma das outras respostas funcionou para mim, mas no final encontrei uma solução ainda mais simples.
Abra o Intellij-Idea e, na barra superior, encontre o menu suspenso Ferramentas . Em seguida, selecione o botão Criar entrada da área de trabalho . Ele criará uma entrada .desktop funcionando corretamente em sua
.local/share/applications
pasta, que deve ser reconhecida por qualquer ambiente de área de trabalho que você esteja usando. Ele não cria um ícone duplicado e você pode até mudar o ícone, se quiser.Infelizmente, o uso do
nosplash
argumento traz de volta o problema do ícone duplicado, por isso não tenho certeza de como consertar isso.fonte
Depois de instalar o IntelliJ IDEA 2017/02/05 no Ubuntu 17.04 (com ícones Numix) eu tive que mudar a linha
StartupWMClass=jetbrains-idea
paraStartupWMClass=jetbrains-idea-ce
em arquivo .desktop do programa para o ícone duplicado desapareceria.Eu acho que "ce" significa Community Edition, então não sei por que o valor dessa propriedade no arquivo .desktop originalmente não estava com o sufixo "ce".
fonte