aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sway/config.h8
-rw-r--r--sway/commands/bar/font.c15
-rw-r--r--sway/config/bar.c2
-rw-r--r--sway/ipc-json.c4
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
295enum 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
295struct bar_config { 301struct 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",