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 .desktop
file 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_CLASS
sulle 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 StartupWMClass
ma 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_CLASS
valori completamente diversi . Ciò significa che, quando faccio clic sul mio launcher con StartupWMClass=com-mathworks-util-PostVMInit
al suo interno, la schermata iniziale viene visualizzata con Unity
un'icona diversa (predefinita sconosciuta) , mentre il resto viene raggruppato sotto il mio launcher.
Usando xprop WMCLASS
e facendo clic prima sulla schermata iniziale, quindi ripetendo con una Matlab
sessione 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.
Drawers
quel 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 Unity
avvio che è ciò che sto cercando di fermare