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

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

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

无论如何,在LXDE中,GUI的响应性比它好是在oldstable上,并且在运行Windows 7时速度可能很快。

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

评论

运行xprop,此工具将在仿真下运行的x应用程序上运行,但不能在Wayland上运行Wayland或gnome-shell。

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

经典SE:错误/不完整,复杂的答案需要294票赞成票,而简单,正确和完整的答案只能得到2票赞成票。要想获得最佳答案,最上面的肯定是一个很难解决的问题。

#1 楼

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

loginctl


然后:

loginctl show-session <SESSION_ID> -p Type


如果要全部只需一个命令即可:

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


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

参考:
https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

对我来说是:

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


评论


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

–Ho1
16-11-25在10:33



loginctl show-session`loginctl | grep <您的用户名> | awk'{print $ 1}'`-p类型

–solsTiCe
17年12月7日在7:06



根据Fedora 28文档,您还可以使用echo $ WAYLAND_DISPLAY,如果不使用wayland,则不打印任何内容。

– Robsch
18年6月25日在9:14

@DSJustice您的反引号已被减价。可以复制以下内容:loginctl show-session $(loginctl | grep $(whoami)| awk'{print $ 1}')-p类型

–安德烈亚斯(Andreas)
18年11月6日在7:30

如果您不使用显示管理器,则无论您使用x11还是wayland,都会输出tty。

–德文
20 Mar 12 '13 at 13:19

#2 楼


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


在X11系统上:

$ echo $XDG_SESSION_TYPE
x11


在某些系统上Wayland系统:

$ echo $XDG_SESSION_TYPE
wayland


编辑:在某些情况下,这似乎不起作用。查看评论并使用antismap的答案

评论


如果未设置此变量是什么意思?

–加文·扬西(Gavin S. Yancey)
17年5月26日在6:03

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

–太阳战士
18年8月31日在8:31

我是没有显示管理器的Wayland用户。这将输出tty。

–德文
20-3-12在13:11

我是没有显示管理器的X11用户。这将输出tty。

– JoL
20年5月11日在19:25

有关检查此内容的正确方法,请参见stackoverflow.com/a/45537237/912144。

– Shahbaz
20年8月23日在5:08

#3 楼

这适用于fedora

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


评论


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

– Talespin_Kit
18/09/10在13:07

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

– rahmu
18年11月12日在14:58

它也适用于Kubuntu 19.10。

– Cees Timmerman
20-2-3在14:22

一个较小的变化:loginctl show-session $(loginctl show-user $(whoami)-p Display --value)-p Type --value我猜这假设每个用户的会话ID是单数:我不确定是否可以是多个ID。

– NickD
20年9月1日于14:50

#4 楼

我最喜欢Ayush的答案,但我想我可以说安德里亚斯的答案可以在一行中完成:

loginctl show-session "$XDG_SESSION_ID" -p Type


您还可以传递--value来删除Type=前缀。

评论


对我而言,此操作失败并显示一条错误消息:无法获取会话路径:呼叫者不属于任何已知会话。显然,在我的Wayland会话中未设置$ XDG_SESSION_ID。

–卡利莫
20年8月29日在14:52

没有为我设置XDG_SESSION_ID,尽管设置了其他XDG_ var。 (我在Ubuntu gutsy 20.10上运行Wayland)

–乔纳森·哈特利
20-11-20在15:46

#5 楼

发出命令

ps aux | grep gnome-shell


如果Wayland处于活动状态,它将给出输出

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




评论


如果Wayland是默认值,该怎么办?

–anatoly techtonik
16-09-21在11:34

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

–paulie4
16年11月5日,2:15

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

– Marius Gedminas
16年11月23日在8:38

gnome-shell仅在将gnome用作DM时有效。

–塞巴斯蒂安
17 Mar 27 '17 at 19:55

一个建议-我需要使用'wide'选项(w)运行ps aux,否则输出会被截断并且grep不会读取任何内容(ps aux w | grep gnome-shell)

–cbcoutinho
18年3月11日在21:07

#6 楼

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

评论


通过Alt + F2,我的Kubuntu 19.10启动Robo3t,通过终端我得到“找不到命令'r',但可以使用以下命令安装:sudo apt install r-cran-littler”。

– Cees Timmerman
20-2-3在14:27



#7 楼

最简单的操作是检查是否设置了WAYLAND_DISPLAY变量。

评论


正确,然后,如果失败,请检查“显示”以查看是否正在使用X11。

– JoL
20年5月11日在19:28

#8 楼

如果您需要视觉提示,我写了一个简单的GNOME Shell扩展,其中显示了一个图标,告诉您运行的是Wayland还是Xorg

http://www.fepede.net/blog/2017/ 04 / gnome_shell_extension_xorwayland /

#9 楼

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



评论


您的屏幕截图中没有显示航路过程;您突出显示的那一行是dbus启动过程,开始了一个称为gnome-wayland的会话。

–斯蒂芬·基特(Stephen Kitt)
15年5月16日在21:30

#10 楼

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

评论


在我的Wayland会议上似乎工作得很好...

–don_crissti
18年3月22日在12:05

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

–Basile Starynkevitch
18 Mar 22 '18 at 12:06

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

–don_crissti
18-3-22在12:08



#11 楼

好吧,您也可以只检查应用程序是否以其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标志代表以前的名称,有助于打印二进制名称。

您可以查看更多详细信息。这个答案是根据这个问题改编的。

评论


Cleaner用来列出所有程序及其X11或Wayland依赖项:find。 | xargs ldd | grep'^ [。] \ | x11 \ | wayland'

– Cees Timmerman
20-2-3在14:36