i3
load_layout.h
Go to the documentation of this file.
1/*
2 * vim:ts=4:sw=4:expandtab
3 *
4 * i3 - an improved tiling window manager
5 * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
6 *
7 * load_layout.c: Restore (parts of) the layout, for example after an inplace
8 * restart.
9 *
10 */
11#pragma once
12
13#include <config.h>
14
15typedef enum {
16 // We could not determine the content of the JSON file. This typically
17 // means it’s unreadable or contains garbage.
19
20 // The JSON file contains a “normal” container, i.e. a container to be
21 // appended to an existing workspace (or split container!).
23
24 // The JSON file contains a workspace container, which needs to be appended
25 // to the output (next to the other workspaces) with special care to avoid
26 // naming conflicts and ensuring that the workspace _has_ a name.
29
30/* Parses the given JSON file until it encounters the first “type” property to
31 * determine whether the file contains workspaces or regular containers, which
32 * is important to know when deciding where (and how) to append the contents.
33 * */
34json_content_t json_determine_content(const char *buf, const size_t len);
35
40bool json_validate(const char *buf, const size_t len);
41
42void tree_append_json(Con *con, const char *buf, const size_t len, char **errormsg);
json_content_t
Definition load_layout.h:15
@ JSON_CONTENT_UNKNOWN
Definition load_layout.h:18
@ JSON_CONTENT_CON
Definition load_layout.h:22
@ JSON_CONTENT_WORKSPACE
Definition load_layout.h:27
bool json_validate(const char *buf, const size_t len)
Returns true if the provided JSON could be parsed by yajl.
json_content_t json_determine_content(const char *buf, const size_t len)
void tree_append_json(Con *con, const char *buf, const size_t len, char **errormsg)
A 'Con' represents everything from the X11 root window down to a single X11 window.
Definition data.h:643