如何从终端找到运行的GUI环境?

如何从终端找到运行的GUI环境?

这是一个非常基本的问题,但我在任何地方都找不到令人满意的答案:

如何从终端找到正在运行的 GUI?


我正在开发的系统非常小,我只能看到 xterm 窗口,我可以从其中打开应用程序(在单独的窗口中)。我可以通过右键单击桌面上的空闲区域来打开新的 xterm 窗口。每次我打开一个应用程序并因此打开一个新窗口时,为了实际打开该窗口,我必须用鼠标单击屏幕的空闲区域。

我不认为这个问题是重复的有没有办法检索桌面环境的名称?,因为我的设置与那个设置有点不同,并且它的答案都不适合我。

答案1

您可以键入内容env来了解​​配置了哪些环境。

从中找到以下响应关联

  XDG_CURRENT_DESKTOP - Tells you what Windows Manager you are using

  GDMSESSION - Tells you what option you selected from the lightdm greeter to login.

要使用它们,请转到终端并输入:

  echo $XDG_CURRENT_DESKTOP

(例如,如果您使用 Unity,则会输出“unity”)

或者

  echo $GDMSESSION

(例如,如果您在登录中选择了 ubuntu,则将输出“ubuntu”;如果您在登录中选择了“ubuntu-2d”,则将输出“ubuntu-2d”。)

如果你仔细观察 env 的输出,你还会发现其他的东西,比如 DESKTOP_SESSION 和 COMPIZ_CONFIG_PROFILE

由于您要查找的是 usem 中窗口管理器的名称,因此我了解如何获取该名称的唯一方法是查看进程列表。为此,有一个名为 pgrep(维基百科)的命令。我执行了以下操作来获取名称,因为参数 -l 添加了进程 ID:

pgrep -l compiz |cut -d " " -f2由于该进程由同一用户运行,因此无需添加 sudo 部分前缀。然后,您可以使用它来创建一个基于窗口管理器执行操作的脚本。

要查找其他类型,只需将单词更改compiz为其他类型mutter,例如kwin, 等。

在 Ubuntu 12.04 上我测试了环境变量 XDG_CURRENT_DESKTOP 和 GDMSESSION 并得到以下结果:

凯德

XDG_CURRENT_DESKTOP= GDMSESSION=kde-plasma Unity 3d

XDG_CURRENT_DESKTOP=Unity GDMSESSION=ubuntu Unity 2d

XDG_CURRENT_DESKTOP=Unity GDMSESSION=ubuntu-2d

侏儒

XDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnome-shell

侏儒经典

XDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnome-经典

Gnome Classic 无效果

XDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnome-fallback 其他基于 Ubuntu 的发行版:

薄荷 13(肉桂)

XDG_CURRENT_DESKTOP=GNOME GDMSESSION=肉桂

鲁本图 12.04

XDG_CURRENT_DESKTOP=LXDE GDMSESSION=Lubuntu

相关内容