Ceci est un exemple spécifique d'un problème générique pour lequel je n'ai pas encore trouvé de solution.
J'ai un programme (Android Virtual Device Manager) qui lance des sous-programmes (à savoir des émulateurs ou des périphériques virtuels) à partir de lui-même (peut également être lancé ailleurs). Je souhaite que toutes les instances de l'un ou l'autre de ces programmes soient regroupées sous la même icône Unity.
J'ai créé un .desktop
fichier pour essayer d'accomplir cela, mais je ne sais pas exactement comment m'y prendre . Le fichier de bureau est le suivant:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Android Virtual Device
Icon=/home/ben/.icons/android.svg
Exec=/home/ben/usr/bin/android avd
StartupWMClass=Android Virtual Device Manager
D'après ce que je comprends, StartupWMClass
c'est ce que je dois définir pour y parvenir correctement. J'ai obtenu les deux noms de classe ('Android Virtual Device Manager' et 'emulator64-arm') à l'aide xprop WM_CLASS
des fenêtres représentatives. Les deux fonctionnent individuellement (l'icône du lanceur est correctement attachée au programme, quelle que soit la façon dont il est lancé), mais je ne peux pas le faire fonctionner pour les deux.
Je suppose que j'ai en quelque sorte besoin de définir deux valeurs pour StartupWMClass
mais je n'ai pas pu le faire correctement (ou savoir si c'est une opération valide). J'ai essayé, séparé par deux points comme les variables d'environnement, séparé par des virgules, des guillemets, etc. et je ne trouve aucun indice dans la documentation officielle .
Aucune suggestion?
ÉDITER:
Un autre exemple, plus pédant, mais probablement plus identifiable est avec Matlab
. Je lance 2013a et l'écran de démarrage qui s'affiche initialement et le programme ont des WM_CLASS
valeurs complètement différentes . Cela signifie que lorsque je clique sur mon lanceur avec StartupWMClass=com-mathworks-util-PostVMInit
, l'écran de démarrage affiche une Unity
icône différente (par défaut inconnue) , tandis que le reste apparaît groupé sous mon lanceur.
En utilisant xprop WMCLASS
et en cliquant d'abord sur l'écran de démarrage, puis en répétant avec une Matlab
session active , j'obtiens la sortie de terminal suivante:
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "MATLAB", "MATLAB"
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit"
Si je pouvais préciser quelque chose comme:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
Cela fonctionnerait parfaitement (car les deux fonctionnent séparément) mais je n'ai aucune idée de la syntaxe, si elle existe. Je sais juste que rien de ce que j'ai essayé n'a fonctionné jusqu'à présent.
Toute aide ou réponse définitive dans les deux cas serait formidable car je pense que c'est un élément assez fondamental d'un bureau qui fonctionne bien.
Drawers
ce lien et à partir de ce qu'elles montrent, il regroupe simplement les liens, lorsque vous cliquez sur un sous-élément, il est toujours créé avec sa propre icône dans le Unity
lanceur, ce que j'essaie d'arrêter