如何检测Linux OS是否使用KDE或Gnome环境

问题描述 投票:7回答:2

我需要以编程方式确定在Linux上正在运行哪个窗口管理器。

如何使用伪代码:

if(WindowManagerOfOS.isKDE()){
      do.anyThing();
}

我该怎么做?可能吗?

java linux desktop-application gnome kde
2个回答
10
投票
System.getenv("XDG_CURRENT_DESKTOP")

在我的机器上返回"GNOME"。在基于KDE的盒子上尝试一下。

另请参见


1
投票

官方的回答是您不应该在乎。两种台式机均符合现有标准。两者都可以运行彼此的软件。您想做什么?如果您要寻找的是一项特殊服务,则默认情况下仅查找一个发行版,您应该对此进行探测。


0
投票

[Andy,今天我发现我必须知道哪个桌面正在运行,因为我刚刚发现具有Unity的Ubuntu和具有XFE的Xubuntu的行为在我的程序中并不相同。就XGetGeometry而言。在Unity上,我可以使用该窗口,但是在XFE上,我必须使用通过XQueryTree调用获得的父窗口。

有趣的是,尽管没有问题,我们必须知道哪个是哪个。...该线程无法回答问题,因为如上所述,getenv(“ XDG_CURRENT_DESKTOP”)返回零。

[任何讨论如何从Terminal调用程序的线程都应从此网站上删除,因为我们在这里只关心它-在程序内。

所以...你怎么做到的?

© www.soinside.com 2019 - 2024. All rights reserved.