diff options
-rw-r--r-- | include/sway/config.h | 8 | ||||
-rw-r--r-- | sway/commands/bar/font.c | 15 | ||||
-rw-r--r-- | sway/config/bar.c | 2 | ||||
-rw-r--r-- | sway/ipc-json.c | 4 |
4 files changed, 25 insertions, 4 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index 2a1df2b6..254fbad0 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -292,6 +292,12 @@ struct workspace_config { | |||
292 | struct side_gaps gaps_outer; | 292 | struct side_gaps gaps_outer; |
293 | }; | 293 | }; |
294 | 294 | ||
295 | enum pango_markup_config { | ||
296 | PANGO_MARKUP_DISABLED = false, | ||
297 | PANGO_MARKUP_ENABLED = true, | ||
298 | PANGO_MARKUP_DEFAULT // The default is font dependent ("pango:" prefix) | ||
299 | }; | ||
300 | |||
295 | struct bar_config { | 301 | struct bar_config { |
296 | char *swaybar_command; | 302 | char *swaybar_command; |
297 | struct wl_client *client; | 303 | struct wl_client *client; |
@@ -323,7 +329,7 @@ struct bar_config { | |||
323 | char *position; | 329 | char *position; |
324 | list_t *bindings; | 330 | list_t *bindings; |
325 | char *status_command; | 331 | char *status_command; |
326 | bool pango_markup; | 332 | enum pango_markup_config pango_markup; |
327 | char *font; | 333 | char *font; |
328 | int height; // -1 not defined | 334 | int height; // -1 not defined |
329 | bool workspace_buttons; | 335 | bool workspace_buttons; |
diff --git a/sway/commands/bar/font.c b/sway/commands/bar/font.c index 62987f3e..891c87af 100644 --- a/sway/commands/bar/font.c +++ b/sway/commands/bar/font.c | |||
@@ -11,7 +11,20 @@ struct cmd_results *bar_cmd_font(int argc, char **argv) { | |||
11 | } | 11 | } |
12 | char *font = join_args(argv, argc); | 12 | char *font = join_args(argv, argc); |
13 | free(config->current_bar->font); | 13 | free(config->current_bar->font); |
14 | config->current_bar->font = font; | 14 | |
15 | if (strncmp(font, "pango:", 6) == 0) { | ||
16 | if (config->current_bar->pango_markup == PANGO_MARKUP_DEFAULT) { | ||
17 | config->current_bar->pango_markup = true; | ||
18 | } | ||
19 | config->current_bar->font = strdup(font + 6); | ||
20 | } else { | ||
21 | if (config->current_bar->pango_markup == PANGO_MARKUP_DEFAULT) { | ||
22 | config->current_bar->pango_markup = false; | ||
23 | } | ||
24 | config->current_bar->font = strdup(font); | ||
25 | } | ||
26 | |||
27 | free(font); | ||
15 | sway_log(SWAY_DEBUG, "Settings font '%s' for bar: %s", | 28 | sway_log(SWAY_DEBUG, "Settings font '%s' for bar: %s", |
16 | config->current_bar->font, config->current_bar->id); | 29 | config->current_bar->font, config->current_bar->id); |
17 | return cmd_results_new(CMD_SUCCESS, NULL); | 30 | return cmd_results_new(CMD_SUCCESS, NULL); |
diff --git a/sway/config/bar.c b/sway/config/bar.c index 767534a6..8970f3fd 100644 --- a/sway/config/bar.c +++ b/sway/config/bar.c | |||
@@ -91,7 +91,7 @@ struct bar_config *default_bar_config(void) { | |||
91 | } | 91 | } |
92 | bar->outputs = NULL; | 92 | bar->outputs = NULL; |
93 | bar->position = strdup("bottom"); | 93 | bar->position = strdup("bottom"); |
94 | bar->pango_markup = false; | 94 | bar->pango_markup = PANGO_MARKUP_DEFAULT; |
95 | bar->swaybar_command = NULL; | 95 | bar->swaybar_command = NULL; |
96 | bar->font = NULL; | 96 | bar->font = NULL; |
97 | bar->height = 0; | 97 | bar->height = 0; |
diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 34adfc74..6c438424 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c | |||
@@ -1127,7 +1127,9 @@ json_object *ipc_json_describe_bar_config(struct bar_config *bar) { | |||
1127 | json_object_object_add(json, "verbose", | 1127 | json_object_object_add(json, "verbose", |
1128 | json_object_new_boolean(bar->verbose)); | 1128 | json_object_new_boolean(bar->verbose)); |
1129 | json_object_object_add(json, "pango_markup", | 1129 | json_object_object_add(json, "pango_markup", |
1130 | json_object_new_boolean(bar->pango_markup)); | 1130 | json_object_new_boolean(bar->pango_markup == PANGO_MARKUP_DEFAULT |
1131 | ? config->pango_markup | ||
1132 | : bar->pango_markup)); | ||
1131 | 1133 | ||
1132 | json_object *colors = json_object_new_object(); | 1134 | json_object *colors = json_object_new_object(); |
1133 | json_object_object_add(colors, "background", | 1135 | json_object_object_add(colors, "background", |