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 ter o logotipo do Arduino exibido, baixei um PNG chamado arduino2.png
e coloquei na mesma pasta, e fiz referência ao arquivo acima, como você pode ver.
Aproximadamente na mesma época, também baixei um programa chamado SAOimage para imagens astronômicas. Eu 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 de ícone está na mesma pasta que o 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 rodando, quando eu ALT+TAB entre os aplicativos, o Arduino é representado pelo ícone SAOimage, e o SAOimage não tem ícone!
Além disso, se eu iniciar o SAOimage e depois o Arduino, eles iniciarão 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 deslocado para o Arduino.
Por que é isso? Fiz algo errado? Existe algum mecanismo que eu não entendo? Tanto quanto posso ver, não há razão - com base nos arquivos .desktop - que o Ubuntu confunda os dois...?
Aposto que tem a ver com o
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.A partir deste post podemos ver que
StartupWMClass
é usado para descrever qual aplicativo é responsável por uma janela (no caso de um aplicativo estar 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.