|
|
@ -108,6 +108,7 @@ static void ipc_parse_config(struct config *config, const char *payload) {
|
|
|
|
|
|
|
|
|
|
|
|
if (colors) {
|
|
|
|
if (colors) {
|
|
|
|
json_object *background, *statusline, *separator;
|
|
|
|
json_object *background, *statusline, *separator;
|
|
|
|
|
|
|
|
json_object *focused_background, *focused_statusline, *focused_separator;
|
|
|
|
json_object *focused_workspace_border, *focused_workspace_bg, *focused_workspace_text;
|
|
|
|
json_object *focused_workspace_border, *focused_workspace_bg, *focused_workspace_text;
|
|
|
|
json_object *inactive_workspace_border, *inactive_workspace_bg, *inactive_workspace_text;
|
|
|
|
json_object *inactive_workspace_border, *inactive_workspace_bg, *inactive_workspace_text;
|
|
|
|
json_object *active_workspace_border, *active_workspace_bg, *active_workspace_text;
|
|
|
|
json_object *active_workspace_border, *active_workspace_bg, *active_workspace_text;
|
|
|
@ -116,6 +117,9 @@ static void ipc_parse_config(struct config *config, const char *payload) {
|
|
|
|
json_object_object_get_ex(colors, "background", &background);
|
|
|
|
json_object_object_get_ex(colors, "background", &background);
|
|
|
|
json_object_object_get_ex(colors, "statusline", &statusline);
|
|
|
|
json_object_object_get_ex(colors, "statusline", &statusline);
|
|
|
|
json_object_object_get_ex(colors, "separator", &separator);
|
|
|
|
json_object_object_get_ex(colors, "separator", &separator);
|
|
|
|
|
|
|
|
json_object_object_get_ex(colors, "focused_background", &focused_background);
|
|
|
|
|
|
|
|
json_object_object_get_ex(colors, "focused_statusline", &focused_statusline);
|
|
|
|
|
|
|
|
json_object_object_get_ex(colors, "focused_separator", &focused_separator);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_border", &focused_workspace_border);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_border", &focused_workspace_border);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_bg", &focused_workspace_bg);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_bg", &focused_workspace_bg);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_text", &focused_workspace_text);
|
|
|
|
json_object_object_get_ex(colors, "focused_workspace_text", &focused_workspace_text);
|
|
|
@ -143,6 +147,18 @@ static void ipc_parse_config(struct config *config, const char *payload) {
|
|
|
|
config->colors.separator = parse_color(json_object_get_string(separator));
|
|
|
|
config->colors.separator = parse_color(json_object_get_string(separator));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (focused_background) {
|
|
|
|
|
|
|
|
config->colors.focused_background = parse_color(json_object_get_string(focused_background));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (focused_statusline) {
|
|
|
|
|
|
|
|
config->colors.focused_statusline = parse_color(json_object_get_string(focused_statusline));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (focused_separator) {
|
|
|
|
|
|
|
|
config->colors.focused_separator = parse_color(json_object_get_string(focused_separator));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (focused_workspace_border) {
|
|
|
|
if (focused_workspace_border) {
|
|
|
|
config->colors.focused_workspace.border = parse_color(json_object_get_string(focused_workspace_border));
|
|
|
|
config->colors.focused_workspace.border = parse_color(json_object_get_string(focused_workspace_border));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -235,6 +251,13 @@ static void ipc_update_workspaces(struct bar *bar) {
|
|
|
|
ws->name = strdup(json_object_get_string(name));
|
|
|
|
ws->name = strdup(json_object_get_string(name));
|
|
|
|
ws->visible = json_object_get_boolean(visible);
|
|
|
|
ws->visible = json_object_get_boolean(visible);
|
|
|
|
ws->focused = json_object_get_boolean(focused);
|
|
|
|
ws->focused = json_object_get_boolean(focused);
|
|
|
|
|
|
|
|
if (ws->focused) {
|
|
|
|
|
|
|
|
if (bar->focused_output) {
|
|
|
|
|
|
|
|
bar->focused_output->focused = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
bar->focused_output = output;
|
|
|
|
|
|
|
|
output->focused = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
ws->urgent = json_object_get_boolean(urgent);
|
|
|
|
ws->urgent = json_object_get_boolean(urgent);
|
|
|
|
list_add(output->workspaces, ws);
|
|
|
|
list_add(output->workspaces, ws);
|
|
|
|
}
|
|
|
|
}
|
|
|
|