Descargué Arduino IDE v. 1.8.13 para Linux de 64 bits. Es un archivo comprimido, que se descomprime y ejecuta el binario. Para que sea fácilmente accesible, creé un .desktop
archivo ~/.local/share/applications/
llamado 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 que se muestre el logotipo de Arduino, descargué un archivo PNG llamado arduino2.png
, lo puse en la misma carpeta y le hice referencia al archivo anterior, como puede ver.
Aproximadamente al mismo tiempo, también descargué un programa llamado SAOimage para imágenes astronómicas. También tuve que crear un .desktop
archivo 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
Aquí, el archivo del icono está en la misma carpeta que el programa. Ahora, cuando presiono la supertecla y empiezo a escribir "ard..." veo el icono de Arduino y se inicia Arduino:
Del mismo modo, cuando presiono la supertecla y empiezo a escribir "sao..." veo el icono de SAOimage y se inicia SAOimage.
Pero una vez que los programas se están ejecutando, cuando presiono ALT+TAB entre aplicaciones, Arduino está representado por el ícono SAOimage, ¡y SAOimage no tiene ícono!
Además, si inicio SAOimage por primera vez yentoncesArduino, empiezan en ese orden. Pero si inicio Arduino primero y luego presiono la tecla super, escribo sao e inicio SAOimage, el programa no se inicia; en cambio, el enfoque simplemente se desplaza a Arduino.
¿Por qué es esto? ¿Hice algo malo? ¿Hay algún mecanismo que no entiendo? Por lo que puedo ver, no hay ninguna razón, según los archivos .desktop, por la que Ubuntu confunda los dos...
Respuesta1
Apuesto a que tiene que ver con StartupWMClass
, la última línea de ambos archivos de escritorio; específicamente, la confusión surge de cómo sus valores son idénticos.
De esta publicaciónPodemos ver que StartupWMClass
se usa para describir qué aplicación es responsable de una ventana (en caso de que una aplicación esté creando varios tipos diferentes de ventanas).
Ahora bien, si tiene dos aplicaciones separadas en su escenario, es posible que ni siquiera necesite la StartupWMClass
declaración; o al menos, definitivamente no con valores idénticos en ambos archivos de escritorio.