如何开始为 Wayland 构建 GUI 工具包
How to start building a GUI toolkit for wayland
我想为我的桌面环境创建一个 GUI 工具包(因为 gtk 和 qt 都不适合我的需要)但我不知道如何开始。我不需要跨平台或独立于显示服务器的库、主题选项、可配置图标等,只需要一些用于制作 Wayland 客户端的基本小部件。 (按钮、条目、标签、window 和图像等小部件...如果它很重要,我想使用 CSD)
我的问题是我不明白图形在 wayland 中是如何工作的(在 X 中你只需要创建一个 window 并使用 XDrawLine
等等,对吧?)我也不明白知道如何编写图形工具包。你能给我一些关于如何做到这一点的文章或建议吗?
创建 wayland 客户端的最简单方法是使用 wayland-client 库。基本上,它抽象了有线格式。
示例:
#include <stdio.h>
#include <wayland-client.h>
int main(void)
{
struct wl_display *display = wl_display_connect(NULL);
if (display) {
printf("Connected!\n");
} else {
printf("Error connecting ;(\n");
return 1;
}
wl_display_disconnect(display);
return 0;
}
我想为我的桌面环境创建一个 GUI 工具包(因为 gtk 和 qt 都不适合我的需要)但我不知道如何开始。我不需要跨平台或独立于显示服务器的库、主题选项、可配置图标等,只需要一些用于制作 Wayland 客户端的基本小部件。 (按钮、条目、标签、window 和图像等小部件...如果它很重要,我想使用 CSD)
我的问题是我不明白图形在 wayland 中是如何工作的(在 X 中你只需要创建一个 window 并使用 XDrawLine
等等,对吧?)我也不明白知道如何编写图形工具包。你能给我一些关于如何做到这一点的文章或建议吗?
创建 wayland 客户端的最简单方法是使用 wayland-client 库。基本上,它抽象了有线格式。
示例:
#include <stdio.h>
#include <wayland-client.h>
int main(void)
{
struct wl_display *display = wl_display_connect(NULL);
if (display) {
printf("Connected!\n");
} else {
printf("Error connecting ;(\n");
return 1;
}
wl_display_disconnect(display);
return 0;
}