Bon, j'ai regardé un peu, et je dirais que la manière dont est parsée la ligne
Exec= est assez buguée.
Bien sûr, pour être tout à fait affirmatif, il faudrait aller voir le code source, mais franchement, ça ne respecte pas la spécification Freedesktop.org :
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html#exec-variables
D'ailleurs, le résultat est différent selon qu'on active un fichier
.desktop "graphiquement" (par clic souris depuis le menu ou le bureau) ou bien par la commande
gtk-launch, et la différence ne se limite pas au parsing de la ligne
Exec=, le terminal par défaut qui est recherché n'est pas le même ! (par
gtk-launch, ça va chercher
xterm, qui n'est pas installé par défaut…)
Ceci dit, ça ne m'étonne qu'à moitié : il semble y avoir à peu près autant d'environnements de bureau que de manières de suivre cette spécification (j'ai déjà eu maille à partir avec celles de Xfce et de Gnome).
Dans le cas qui nous occupe, le problème vient des espaces, qui semblent à peu près impossible à utiliser dans une sous-commande (je pense avoir essayé toutes les combinaisons que prévoit la spec).
Donc à défaut, il faut éviter d'en mettre si possible, et là, c'est tout à fait possible :
[Desktop Entry]
Name=Cartes audio
Exec=sh -c "cartes_audio.sh;bash"
Type=Application
Terminal=true
Heureusement que le script ne prend pas d'arguments…
Sinon, pour terminer sur une note positive (car ceci n'est pas bien grave), j'ai trouvé que Lubuntu marchait vraiment bien (non seulement plus léger mais aussi plus rapide qu'Xubuntu je pense).