Questo è un esempio specifico di un problema generico per il quale non sono stato ancora in grado di trovare una soluzione.
Ho un programma (Android Virtual Device Manager) che avvia "sottoprogrammi" (ovvero emulatori o dispositivi virtuali) dall'interno (può anche essere avviato da un'altra posizione). Voglio che qualsiasi istanza di OGNI di questi programmi sia raggruppata sotto la stessa icona Unity.
Ho creato un .desktopfile per provare a farlo, ma non so esattamente come procedere. Il file desktop è il seguente:
#!/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
Da quello che ho capito, StartupWMClassè quello che devo impostare per raggiungere questo obiettivo correttamente. Ho ottenuto i due nomi di classe ('Android Virtual Device Manager' e 'emulator64-arm') usando xprop WM_CLASSsulle finestre repsective. Entrambi funzionano individualmente (l'icona del programma di avvio è correttamente collegata al programma, indipendentemente dal modo in cui viene avviata), ma non riesco a farlo funzionare per entrambi.
Sto assumendo che in qualche modo ho bisogno di impostare due valori per StartupWMClassma non sono stato in grado di farlo correttamente (o sapere se si tratta di un'operazione valida). Ho provato, due punti separati come variabili d'ambiente, separati da virgola, virgolette, ecc. E non riesco a trovare alcun suggerimento nella documentazione ufficiale .
Eventuali suggerimenti?
MODIFICARE:
Un altro esempio più pedante, ma probabilmente più identificabile è con Matlab. Sto eseguendo il 2013a e la schermata iniziale che inizialmente mostra e il programma ha WM_CLASSvalori completamente diversi . Ciò significa che, quando faccio clic sul mio launcher con StartupWMClass=com-mathworks-util-PostVMInital suo interno, la schermata iniziale viene visualizzata con Unityun'icona diversa (predefinita sconosciuta) , mentre il resto viene raggruppato sotto il mio launcher.
Usando xprop WMCLASSe facendo clic prima sulla schermata iniziale, quindi ripetendo con una Matlabsessione attiva ottengo il seguente output del terminale:
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"
Se potessi specificare qualcosa sulla falsariga di:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
Funzionerebbe perfettamente (poiché entrambi funzionano separatamente) ma non ho idea della sintassi, se esiste. So solo che nulla di ciò che ho provato ha funzionato finora.
Qualsiasi aiuto o una risposta definitiva in entrambi i casi sarebbe eccezionale in quanto credo che questo sia un elemento piuttosto fondamentale di un desktop ben funzionante.
Drawersquel link e da quello che mostrano, raggruppa semplicemente i link, quando fai clic su un elemento secondario, viene comunque creato con una propria icona nel programma di Unityavvio che è ciò che sto cercando di fermare
