2012-01-05 64 views
5

爲了在程序中使用什麼類型的應用程序指示符之間進行選擇,我需要檢測我是否在Unity桌面。這可能嗎?當我無法進入環境時有可能嗎?如何檢測我在運行Unity的系統上的時間?

+2

發現這個:http://askubuntu.com/questions/70296/is-there-an-environment-variable-that-is-set-for-unity – wormsparty 2012-01-05 12:53:37

+0

我編輯了我的問題,我可能沒有訪問對環境,所以這不是一個完整的解決方案。 – fredley 2012-01-05 13:28:47

+0

另一種方法是檢查名爲'unity'的進程是否正在運行。我不認爲有跨平臺的方式來做到這一點。對於Linux,你可能想看看:http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes – wormsparty 2012-01-05 13:47:05

回答

2

只是shell執行ps aux | grep unity,這是針對linux的跨平臺。甚至可以在ARM內核上工作。

在我的11.04 Ubuntu運行的單元上,它返回了unity-2d-panel,unity-2d-launcher和更多的進程。無法確認這是否在每個Linux平臺上都是如此。

+0

可以有其他會話(屬於當前用戶或不同的用戶)當你的當前會話可能不是它時運行Unity。我建議不要依賴Unity流程的存在。 – Manki 2012-09-08 02:03:02

3

在Ubuntu中,你可以使用下面的命令:

  • 回聲$ DESKTOP_SESSION:當您使用Unity和Ubuntu-2D該命令返回Ubuntu的,當你使用Unity 2D和...
  • sudo grep「啓動會話」/var/log/lightdm/lightdm.log:由於Ubuntu的最新版本使用lightdm作爲顯示管理器,因此您可以看到lightdm.log文件的最後一行
1

查找在統一的環境變量列表中運行以下命令行:

env | grep -i unity 

如果作爲in this answer您看到XDG_CURRENT_DESKTOP=Unity那麼您知道它正在使用中。或者,您當然可以檢查desktop而不是unity

相關問題