Wayland入门教程09:进阶
系列索引地址:Wayland入门系列教程索引
本系列的部分文章是在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++ |
newm | python |
qtile | python |
greenfield | html5 |
kde | 框架太大,而且环境中无法使用搜狗输入法 |
20231031 OpenSUSE没有wayland相关包
20231031 fedaro没有wayland-scanner相关包
最终筛选出来了一些有效可参考仓库,先研究wlroots的tinywl,然后是ptychite/vivarium,进阶使用weston
Wayland入门教程09:进阶
https://blog.jackeylea.com/wayland/advance-of-wayland-development/