在C中以编程方式检测Linux中的桌面环境

Jes*_*ica 9 c linux environment desktop

我试图检测我是否在Gnome或KDE桌面环境中运行.

我知道我可以通过ps -aux进行检查并且使用gnome或KDE进行检查但这并不好:1)如果我在gnome桌面上但是我加载了KDE库会怎么样?2)我需要从代码中执行它而不使用system()或popen()或其他fork/exec组合.

我可以读取文件或环境.变量或其他.

有任何想法吗?

谢谢,任何帮助表示赞赏.

nmi*_*els 1

选择一组您关心的窗口管理器:metacity、xfwm4、flwm 等。您可以在 grep 中查找ps(或通过 /proc 搜索)。Gnome 库并不一定意味着有人运行整个 gnome 桌面环境,但 Gnome 和 KDE 并不是窗口管理器。如果您关心 WM,请寻找它们。