2012-01-05 10 views
5

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?

+2

Trovato questo: http://askubuntu.com/questions/70296/is-there-an-environment-variable-that-is-set-for-unity – wormsparty

+0

Ho modificato la mia domanda, potrei non avere accesso per l'ambiente, quindi non è una soluzione completa. – fredley

+0

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

risposta

2

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.

+0

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

3

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.
1

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.

Problemi correlati