34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
#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;
|
|
}
|