aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/workspace.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r--sway/tree/workspace.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c
new file mode 100644
index 00000000..e8ed4102
--- /dev/null
+++ b/sway/tree/workspace.c
@@ -0,0 +1,26 @@
+#define _XOPEN_SOURCE 500
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "sway/container.h"
+#include "log.h"
+
+void next_name_map(swayc_t *ws, void *data) {
+ int *count = data;
+ ++count;
+}
+
+char *workspace_next_name(const char *output_name) {
+ sway_log(L_DEBUG, "Workspace: Generating new workspace name for output %s",
+ output_name);
+ int count = 0;
+ next_name_map(&root_container, &count);
+ ++count;
+ int len = snprintf(NULL, 0, "%d", count);
+ char *name = malloc(len + 1);
+ if (!sway_assert(name, "Failed to allocate workspace name")) {
+ return NULL;
+ }
+ snprintf(name, len + 1, "%d", count);
+ return name;
+}