如何知道使用Wayland还是X11


164

因此,我刚刚在基于Debian 7(旧版本)的笔记本电脑上安装了最新的Kali Linux。然后,我将整个程序都升级到了Debian 8。

我一直想要Wayland而不是X11,所以我安装了必要的软件包。然后创建一个最小~./config/weston.ini配置。现在,从Gnome登录屏幕:登入画面

我可以引导至Gnome on WaylandLXDE(以及其他)。前者取得的成功非常有限,而后者(LXDE)几乎完美,尽管该面板需要设置(我必须查找freedesktop)。

无论如何,在LXDE中,GUI的响应速度比以前的稳定,并且运行Windows 7时的响应速度可能也一样快。我很高兴。

但是我想知道这是由于从Debian 7到8的所有库/模块升级还是由于使用Wayland(如果我真的真的在使用Wayland)。我浏览了htop,发现一个/usr/bin/Xorg名为“ wayland” 的运行且没有进程。那么我当前正在运行哪一个?


运行xprop,此工具将在仿真下运行的xapplications上运行,但不能在wayland上的wayland或gnome-shell上运行。
Mike Mestnik

4
我想我是唯一注意到的,虽然OP表示他正在使用debian进行操作,但他提供的屏幕截图显然是fedora ...
user1404316

Answers:


226

通过发出以下命令获取要传递的会话ID:

loginctl

然后:

loginctl show-session <SESSION_ID> -p Type

如果要在单个命令上进行所有操作:

loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type | awk -F= '{print $2}'

使用与您的用户名相对应的那个。

请参阅:https//fedoraproject.org/wiki/How_to_debug_Wayland_problems

因此,对我来说是:

$ loginctl show-session 2 -p Type                                                  
Type=wayland

3
感谢您的出色回答。请添加OP应该loginctl首先运行以查看会话。
Ho1

5
loginctl show-session `loginctl|grep <YOUR_USER_NAME>|awk '{print $1}'` -p Type
solsTiCe

确认正在使用gnome-session在ubuntu 17.10上进行工作...令人惊讶的是,我得到x11
Ray Foss

2
根据Fedora 28文档echo $WAYLAND_DISPLAY,如果不使用wayland,您也可以使用不打印任何内容。
罗布(Robsch)

3
@DSJustice您的反引号已被减价。一个人可以复制这个:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas

166

如何知道正在使用Wayland还是X11?

在X11系统上

$ echo $XDG_SESSION_TYPE
x11

在某些Wayland系统上

$ echo $XDG_SESSION_TYPE
wayland

28
如果未设置此变量是什么意思?
g.rocket '17

有没有办法显示正在运行的Wayland协议的版本?
saitam '18

28

这适用于软呢帽

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

管道的力量和Unix哲学。真好
Talespin_Kit

/ me对含糊不清grep ... | awk,但嘿,那很好。
rahmu


9

发出命令

ps aux | grep gnome-shell

它将给出输出

/usr/bin/gnome-shell --wayland --display-server

如果Wayland处于活动状态。


5
如果wayland是默认值怎么办?
anatoly techtonik

1
我的“ gnome-shell”进程没有使用--wayland选项运行,但是当我运行时ps aux | grep wayland,我发现/ usr / bin / Xwayland正在运行。
paulie4,2016年

1
通常,您有两个gnome-shell过程:一个用于gdm,另一个用于用户会话。gdm的gnome-shell通常使用Wayland,而用户会话的gnome-shell使用X11。
Marius Gedminas

Xwayland是在X11应用程序和Wayland显示服务器之间架桥的过程。它的存在意味着您已经在运行Wayland了-但是请检查以上警告,Wayland可能仅用于登录屏幕。
Marius Gedminas

1
gnome-shell仅在将gnome用作DM时有效。
塞巴斯蒂安

3

(尝试)在Alt + F2菜单中运行命令“ r”。它将重新启动Xorg中的环境(而不会丢失窗口和进程),但在Wayland中,它将显示消息“ Wayland中不提供重新启动”。


1

不,当我切换到Wayland傻笑时,我注意到htop中有一个名为Wayland的pid。除非更改,否则这是应该看到的。更新:这是显示Wayland流程的屏幕截图。

在此处输入图片说明


4
wayland您的萤幕撷取画面中没有显示任何程序;您突出显示的行是一个dbus-launch过程,开始一个名为的会话gnome-wayland
史蒂芬·基特


0

您可以运行xdpyinfo命令。它提供有关当前X11服务器(和显示)的信息。如果您没有一个(例如在纯Wayland环境中),它将失败。


似乎在我的wayland会议上工作正常……
don_crissti

恕我直言,这只是意味着您的Wayland会话不是纯粹的 Wayland。
Basile Starynkevitch

当然,但问题是当前会话的“如何知道是否使用wayland或xorg”……不知道如何运行X11服务器
don_crissti

0

好吧,您也可以只检查应用程序是否以其wayland本机形式运行:

cd /usr/bin
ldd $application_name | grep wayland

此外,要检查哪些二进制文件受wayland支持,您可以尝试:

cd /usr/bin
find . | xargs ldd | grep wayland -B 55

上面的内容不是很干净,但是可以。您可以进一步将其通过管道传输到文件,然后用于vim导航。

cd /usr/bin
find . | xargs ldd | grep wayland -B 55 >> candidates
vim candidates
# Use vi movement

-B标志表示之前,并有助于打印二进制名称。

您可以检查此以获取更多详细信息。这个答案适应了这个问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.