如何确定Linux系统使用Wayland还是X11?

暗影龙:

使用语言

我在我的程序中使用带有cmake的C ++ 14。

问题:

我想知道如何确定Linux系统是否使用Wayland或X11作为窗口系统,以便能够在源代码中使用两个API而不会发生冲突。因此,当Wayland可用时,使用Wayland创建一个窗口,否则使用X11 API。

注意:我知道有XWayland,但是我想使用本机X11和本机Wayland,而不使用XWayland。

编辑:为了澄清一些事情:我不想在编译时检查X11或Wayland 而是在运行时检查,因为那时我只需要编译一次代码,它不需要用户考虑哪个使用的版本。

赞·山猫(Zan Lynx):

X11使用DISPLAY环境变量来查找X服务器。Wayland使用WAYLAND_DISPLAY首先查找Wayland变量。然后,如果找不到或无法连接,请继续使用X11。

不要跳过检查WAYLAND_DISPLAY变量或假设Wayland在“ wayland-0”上运行。有些人想使用嵌套的合成器,而您会绕开它。其他人可能正在运行Wayland,但希望通过删除WAYLAND_DISPLAY变量来强制执行X11渲染。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章