如何检测 Linux 操作系统是使用 KDE 还是 Gnome 环境
Posted
技术标签:
【中文标题】如何检测 Linux 操作系统是使用 KDE 还是 Gnome 环境【英文标题】:How to detect if Linux OS uses KDE or Gnome environment 【发布时间】:2012-05-01 09:11:45 【问题描述】:我需要以编程方式确定在 Linux 上运行的是哪个窗口管理器。
如何使用的伪代码:
if(WindowManagerOfOS.isKDE())
do.anyThing();
我该怎么做?有没有可能?
【问题讨论】:
我无法在我的计算机上进行测试,但请尝试查看 UIManager.getSystemLookAndFeelClassName() 在任一计算机上返回的内容 相关:***.com/questions/3376679/… 【参考方案1】:System.getenv("XDG_CURRENT_DESKTOP")
在我的机器上返回 "GNOME"
。在基于 KDE 的机器上试一试。
另见
Determine what window manager is running?【讨论】:
一个用户可以同时安装两个,但只运行一个,在这种情况下两个环境变量都会存在。您必须检查正在运行的进程。 Tomaz,我将使用“KDE_SESSION_VERSION”来检查这一点。问题是 KDE 没有桌面... 我忘记评论了...System.getenv("XDG_CURRENT_DESKTOP") 在带有 KDE 本机的 Linux Mint 12 中为我打印 null。 不,这已被弃用,不要使用它。它在 Gnome3/Fedora16 上也未设置。【参考方案2】:官方的回答是你不应该关心。两款台式机均符合现有标准。两者都可以运行彼此的软件。你想做什么?如果您正在寻找一项特定服务,默认情况下只有一个发行版提供,那么您应该寻找它。
【讨论】:
-1 这不是问题的答案,应该是评论。 我将投票认为这是一个不错的答案。也许不是最好的,但它确实有效,因为当人们想知道如何“那样做”时,有时我们需要说“不要那样做”。 人们关心和应该知道的地方有很多,第一个例子在xdg-utils内cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/…见detectDE(),它被xdg-su/xdg-terminal等用来工作应该使用我们的图形 sudo 包装器的外壳。还有一些东西,比如设置壁纸等,是任何固定的 api 或标准都没有涵盖的。各种壁纸应用程序在以下脚本中执行此操作 bazaar.launchpad.net/~peterlevi/variety/trunk/view/head:/data/… @Andy 错误!基于该假设构建的脚本将失败。例如,您必须能够检测 KDE 才能正确调用konsole
而不是 gnome-terminal
以上是关于如何检测 Linux 操作系统是使用 KDE 还是 Gnome 环境的主要内容,如果未能解决你的问题,请参考以下文章
面向GNU/Linux桌面环境的KDE Plasma 5.11正式发布
在kali linux下安装了kde上网本的桌面全都是英文如何汉化