config: 添加用户配置加载流程和默认配置

This commit is contained in:
2026-03-24 02:40:57 +08:00
parent 67f0c169f5
commit 3e09dec613
12 changed files with 772 additions and 18 deletions

33
src/config/defaults.c Normal file
View File

@@ -0,0 +1,33 @@
#include "config/defaults.h"
#include "base/macros.h"
bool config_defaults_build(const zdwm_api_t *api,
zdwm_config_builder_t *builder,
const zdwm_output_info_t *outputs,
size_t output_count) {
if (!api || !builder || !outputs || output_count == 0) return false;
zdwm_layout_id_t tile_id = api->register_layout(
builder, "tile", "[]=", "builtin tile", api->builtin_layouts.tile);
zdwm_layout_id_t monocle_id = api->register_layout(
builder, "monocle", "[M]", "builtin monocle", api->builtin_layouts.monocle);
zdwm_layout_id_t floating_id =
api->register_layout(builder, "floating", "><>", "floating", nullptr);
if (tile_id == ZDWM_LAYOUT_ID_INVALID ||
monocle_id == ZDWM_LAYOUT_ID_INVALID ||
floating_id == ZDWM_LAYOUT_ID_INVALID) {
return false;
}
zdwm_layout_id_t layout_ids[] = {tile_id, monocle_id, floating_id};
for (size_t i = 0; i < output_count; i++) {
if (api->define_workspace(builder, i, "main", layout_ids,
countof(layout_ids),
tile_id) == ZDWM_WORKSPACE_ID_INVALID) {
return false;
}
}
return true;
}