Wayland入门教程09:进阶

系列索引地址:Wayland入门系列教程索引

上一篇:Wayland入门教程08.14:键盘输入

本系列的部分文章是在Ubuntu Gnome桌面环境系统中开发运行的,如果你使用其他的发行版系统会发现无法运行。因为Gnome是直接基于wayland协议,而其他发行版基本上不使用Gnome桌面环境(KDE也开始支持Wayland了),也就没有wayland支持。

那么为什么需要gnome的wayland支持呢?因为在架构文章中介绍过,wayland需要一个服务端,我们所使用的程序、所开发的界面都是客户端,其他发行版没有服务端自然就无法运行我们的程序了。

本部分介绍如何开发一个自己的Wayland服务端,然后渲染界面。

源码

现在没有完整的Wayland教程可以学习,那么只能从现有的源码分析了。

分析代码的原则就是代码量少、模块依赖少、方便测试效果

我在Github上搜索了关键词Wayland,将其前100页所有可能有效的仓库全部下载下来了,进行编译测试

因为X已经使用了几十年了,新Wayland桌面、程序要兼容X,就会多多少少使用X特性,市面上基本很少有独立的Wayland桌面工程。

名称备注
weston需要一个父合成器(weston/gdm/…)才能使用
sway需要wlroots
wayfire需要wlroots
dwl需要wlroots
wlc需要wlroots
cage需要wlroots
labwc需要wlroots
orbment需要wlc
cagebreak需要wlroots
swc需要wld
river非C/C++
newmpython
qtilepython
greenfieldhtml5
kde框架太大,而且环境中无法使用搜狗输入法

20231031 OpenSUSE没有wayland相关包

20231031 fedaro没有wayland-scanner相关包

最终筛选出来了一些有效可参考仓库,先研究wlroots的tinywl,然后是ptychite/vivarium,进阶使用weston


Wayland入门教程09:进阶
https://blog.jackeylea.com/wayland/advance-of-wayland-development/
作者
JackeyLea
发布于
2024年1月31日
许可协议