虽然常说Linux只是内核,不是完整操作系统,但在GNU/Linux体系中,实际上存在着三种不同的生态:
既然 .NET 既支持 POSIX 也支持云原生,甚至是主要应用场景,还获得微软官方支持,那么不支持 FreeDesktop 显然出于微软的刻意选择。
参与FreeDesktop生态的贡献者普遍认为应停止对X的开发与维护,因此不能说FreeDesktop缺乏官方的GUI系统——其官方GUI体系正是Wayland。甚至连微软也在WSL2上积极投入Wayland合成器weston的开发工作,这进一步证明了Wayland的重要地位和发展潜力。
FreeDesktop缺乏官方控件,虽然X11有控件,但其类似Windows 2.0的老旧界面,已无法满足现代使用需求。

因此,Wayland协议中并无任何官方绘图库。
因此,只能借助第三方图形用户界面库或自行绘制实现所需功能。
借助第三方工具库,如用C/C++/Rust等语言开发的GUI库,dotnet通过ffi加载动态库中的C接口,调用其功能完成GUI绘制。这种方式实现了跨语言交互,灵活利用现有资源构建图形界面。
自绘是某些更跨平台框架的首选,例如 Uno 和 Avalonia。这两个框架通过 gtk 创建窗口表面与 OpenGL 环境,随后利用 Skia 进行图形绘制。同样的技术也被 Chromium 和 Electron 所采用(目前 Chromium 也已支持以 Qt 作为窗口后端)。这种方案使应用在多平台间更具一致性与灵活性。
这些自绘GUI库依然选择GTK的原因在于,GTK能够同时支持X11和Wayland的窗口创建,以及OpenGL环境的初始化。它还提供了统一的输入事件处理机制,并支持窗口装饰功能(特别是GNOME强制要求使用客户端窗口装饰CSD,而不支持服务端装饰,这里的窗口装饰包括标题栏、控制按钮和边框)。此外,GTK还集成了文件选择对话框等常用组件,为开发者提供了便捷的通用功能支持。
若不采用现有的GUI工具包,需自行开发以下功能:
选择Skia的原因在于,其他跨平台2D绘图库普遍存在诸多问题。
此外,FreeDesktop生态能够兼容运行于FreeBSD等操作系统中。