sim*_*ona 18 command-line gui terminal
这是一个非常基本的问题,但我在任何地方都找不到令人满意的答案:
如何从终端找出正在运行的 GUI 是什么?
我正在使用的系统非常小,我只能看到 xterm 窗口,从那里我可以打开应用程序(在单独的窗口中)。我可以通过右键单击桌面上的空闲区域来打开新的 xterm 窗口。每次我打开一个应用程序,因此打开一个新窗口时,为了实际打开窗口,我必须在屏幕的空闲区域上单击鼠标。
我不认为这个问题与Is there a way to retrieve the name of the Desktop Environment?重复?,因为我的设置与那个有点不同,而且它的答案都不适合我。
Raz*_*aza 13
您可以键入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.
Run Code Online (Sandbox Code Playgroud)
要使用它们,请转到终端并键入:
echo $XDG_CURRENT_DESKTOP
Run Code Online (Sandbox Code Playgroud)
(如果您使用 Unity,将输出例如“unity”)
或者
echo $GDMSESSION
Run Code Online (Sandbox Code Playgroud)
(例如,如果您在登录中选择了 ubuntu,则会输出“ubuntu”,如果您在登录中选择了“ubuntu-2d”,则会输出。)
如果您仔细查看 env 的输出,例如 DESKTOP_SESSION 和 COMPIZ_CONFIG_PROFILE,您还有其他人
由于您正在寻找的是正在使用的窗口管理器的名称,因此我了解如何获得它的唯一方法是查看进程列表。为此,有一个名为 pgrep ( Wikipedia ) 的命令。由于参数 -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-classic
侏儒经典没有效果
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnome-fallback 其他基于 Ubuntu 的发行版:
薄荷 13(肉桂)
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=肉桂色
卢本图 12.04
XDG_CURRENT_DESKTOP=LXDE GDMSESSION=Lubuntu