Baixei o Arduino IDE v. 1.8.13 para Linux de 64 bits. É um arquivo compactado, que você descompacta e executa o binário. Para facilitar o acesso, criei um .desktop
arquivo ~/.local/share/applications/
chamado arduino.desktop
:
$ cat arduino.desktop
[Desktop Entry]
Type=Application
Name=Arduino IDE
GenericName=Arduino IDE
Comment=Open-source electronics prototyping platform
Exec=/home/steen/Programmer/Arduino/arduino
Icon=/home/steen/.local/share/applications/arduino2.png
Terminal=false
Categories=Development;IDE;Electronics;
MimeType=text/x-arduino;
Keywords=embedded electronics;electronics;avr;microcontroller;
StartupWMClass=processing-app-Base
Para exibir o logotipo do Arduino, baixei um PNG chamado arduino2.png
e coloquei na mesma pasta, e referenciei o arquivo acima, como você pode ver.
Aproximadamente ao mesmo tempo, também baixei um programa chamado SAOimage para imagens astronômicas. Também tive que criar um .desktop
arquivo para este programa:
$ cat saoimage.desktop
[Desktop Entry]
Type=Application
Name=SAOImage DS9
GenericName=SAOImage DS9
Comment=Astronomical Fits File Editor
Exec=/home/steen/Programmer/SAOImage/ds9
Icon=/home/steen/Programmer/SAOImage/saoimage.png
Terminal=false
Categories=Graphics
MimeType=image/svg+xml;
Keywords=
StartupWMClass=processing-app-Base
Aqui, o arquivo do ícone está na mesma pasta do programa. Agora, quando pressiono a tecla super e começo a digitar "ard...", vejo o ícone do Arduino e ele inicia o Arduino:
Da mesma forma, quando pressiono a tecla super e começo a digitar "sao...", vejo o ícone SAOimage e ele inicia o SAOimage.
Mas uma vez que os programas estão em execução, quando eu uso ALT+TAB entre os aplicativos, o Arduino é representado pelo ícone SAOimage, e o SAOimage não tem ícone!
Além disso, se eu iniciar primeiro o SAOimage eentãoArduino, eles começam nessa ordem. Mas se eu iniciar o Arduino primeiro e depois pressionar a tecla super, digitar sao e iniciar o SAOimage, o programa não inicia; em vez disso, o foco é apenas mudado para o Arduino.
Por que é isso? Fiz algo errado? Existe algum mecanismo que eu não entendo? Pelo que posso ver, não há razão - com base nos arquivos .desktop - para que o Ubuntu confunda os dois ...?
Responder1
Aposto que tem a ver com StartupWMClass
a última linha de ambos os arquivos da área de trabalho; especificamente, a confusão decorre de como seus valores são idênticos.
Desta postagempodemos ver que StartupWMClass
é usado para descrever qual aplicativo é responsável por uma janela (caso um aplicativo esteja criando vários tipos diferentes de janelas).
Agora, se você tiver dois aplicativos separados em seu cenário, possivelmente nem precisará da StartupWMClass
declaração; ou pelo menos definitivamente não com valores idênticos em ambos os arquivos da área de trabalho.