Per scegliere tra quale tipo di indicatori di app utilizzare per un programma, devo rilevare se sono in un desktop Unity o no. È possibile? È possibile quando non ho accesso all'ambiente?Come posso rilevare quando sono su un sistema su cui è in esecuzione Unity?
risposta
Sembra che ci sia anche XDG_CURRENT_DESKTOP:
[email protected]:~$ echo $XDG_CURRENT_DESKTOP
Unity
Vedi https://askubuntu.com/questions/70296/is-there-an-environment-variable-that-is-set-for-unity
Sì, questo è nell'output di 'env'. – icedwater
Just shell esegue ps aux | grep unity
, questo è cross-plattform per linux. Funziona anche su core ARM.
Sul mio 11.04 Ubuntu che esegue l'unità restituisce unity-2d-panel, unit-2d-launcher e più processi. Non posso confermare se questo è vero su ogni piattaforma Linux.
Ci possono essere altre sessioni (appartenenti all'utente corrente o a un altro utente) eseguire Unity quando la tua sessione corrente potrebbe non esserlo. Vorrei sconsigliare di fare affidamento sull'esistenza di un processo di unità. – Manki
In Ubuntu è possibile utilizzare i seguenti comandi:
- echo $ DESKTOP_SESSION: Questo ubuntu comando di ritorno quando si utilizza l'Unità e ubuntu-2d quando si utilizza l'Unità 2D e ...
- sudo grep "Sessione iniziale" /var/log/lightdm/lightdm.log: A causa dell'ultima versione di Ubuntu, utilizzare lightdm come display manager è possibile vedere l'ultima riga del file lightdm.log.
Cerca in l'elenco delle variabili di ambiente per l'unità eseguendo questa riga di comando:
env | grep -i unity
Se come in this answer vedi XDG_CURRENT_DESKTOP=Unity
quindi sai che è in uso. In alternativa, è possibile verificare desktop
anziché unity
.
Trovato questo: http://askubuntu.com/questions/70296/is-there-an-environment-variable-that-is-set-for-unity – wormsparty
Ho modificato la mia domanda, potrei non avere accesso per l'ambiente, quindi non è una soluzione completa. – fredley
Un altro modo sarebbe verificare se un processo denominato "unità" è in esecuzione. Non penso che ci sia un modo multipiattaforma per farlo. Per Linux, si consiglia di consultare: http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes – wormsparty