如何判断我是否正在运行Wayland?

Wayland是Ubuntu 17.10的默认显示服务器“ 在支持的系统上”。但是,我如何知道我的平台是否被支持并且我真正使用的是Wayland?

3为什么你不直接查看进程呢?可以使用pgrep Xorg或者类似的ps -ef | grep " :0"命令。 - Ravexina
2有用的链接:https://unix.stackexchange.com/questions/202891/how-to-know-whether-wayland-or-x11-is-being-used - d a i s y
6个回答

打开终端,然后输入以下命令:
echo $XDG_SESSION_TYPE

检查是否打印wayland

在我看来,这将是最好的答案,因为它不需要安装或运行其他程序。 - Tuhin

你可以安装mesa-utils-extra并运行es2gears_wayland。如果应用程序运行,那么你正在使用Wayland。
要以有趣的方式检查特定应用程序是否使用Wayland或XWayland,请运行xeyes。如果光标位于X或XWayland窗口上,眼睛会移动。
或者在终端中运行以下命令:
env | grep -i wayland

如果没有输出,那就说明你没有运行Wayland。

1很遗憾,我无法在18.04上安装xeyes :( - Fuseteam

在Ubuntu终端中使用该命令:
echo $DESKTOP_SESSION

看一下返回的值。如果在Wayland上,它将返回
gnome-wayland

ubuntu-wayland  #  Ubuntu 20.10  

1cat /etc/X11/default-display-manager - jones0610
10这个答案对于Ubuntu 17.10来说是不正确的。 - Jeremy Bicha
自从Wayland成为GNOME的默认显示管理器以来,情况似乎是这样的:如果你正在运行Wayland,它会显示“gnome”,而如果你在使用Xorg,它会显示“gnome-xorg”。 - Georgi Goranov
5现在,对于Xorg,它显示为"ubunu-xorg",而对于Wayland,只显示为"ubuntu"。 - krumpelstiltskin
4@krumpelstiltskin:正在运行Xorg,这里是'ubuntu'。 - emk2203
4我使用了 gnome 并且正在运行 Wayland。 - code_monk
@krumpelstiltskin 我的情况也一样。正在运行X11,使用的是"Ubuntu"操作系统。 - Piotr Czekalski

设置 > 关于 > 窗口系统

在Ubuntu 21.04上,您还可以从设置GUI中查看它(Win键,输入设置,选择。可执行文件名:gnome-control-center),这很好。

该系统的默认值是Wayland,21.04似乎是第一个使用Wayland作为默认值的版本:https://www.omgubuntu.co.uk/2021/01/ubuntu-21-04-will-use-wayland-by-default

enter image description here

如果我按照提到的方法切换到X11,如在Ubuntu 17.10中如何从Wayland切换回Xorg?所述,它会显示:

窗口系统:X11

而不是Wayland。

然而,正如在Ubuntu 21.04中如何启用Wayland?所提到的,如果Ubuntu检测到您没有硬件支持,它会默认回退到X11。

此外,NVIDIA 460驱动程序不支持Wayland,一旦安装它,X11将成为您唯一的选择。

顺便说一句,21.04迷你ISO安装版(其中包含Wayland但没有NVIDIA驱动程序,需要手动安装)存在一个已知的bug,会导致我的用户界面每隔一天崩溃一次:Ubuntu UI screen image freezes randomly during usage after fresh 21.04 install, suspecting Wayland or Nouveau,使其无法使用。当我安装了NVIDIA驱动并使用X11时,问题就停止了。

我不知道这个答案是否适用于所有情况,但我发现在运行wayland和非wayland时,运行xrandr会显示不同的监视器名称。
xrandr --listmonitors
# On Ubuntu: 0: +*eDP-1 4384/344x2466/193+3840+0  eDP-1

# On Ubuntu-wayland: 0: +XWAYLAND0 1920/340x1080/190+0+0  XWAYLAND0

这是该页面上唯一可以通过SSH工作的功能。 - eje211

如果你执行echo $WAYLAND_DISPLAY,只有在Wayland下才会打印出一个文本(比如wayland-0)。