aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Daniel Otero <otero.o.daniel@gmail.com>2021-03-19 18:02:46 +0100
committerLibravatar Simon Ser <contact@emersion.fr>2021-06-03 14:18:23 +0200
commitb997147284b9d5632f1f929f02a17936a77cd7ec (patch)
tree6a2e93690d0dbd3c4eb032ce3d2bbf7e9671af27
parentOnly defer seat attachment during initial startup (diff)
downloadsway-b997147284b9d5632f1f929f02a17936a77cd7ec.tar.gz
sway-b997147284b9d5632f1f929f02a17936a77cd7ec.tar.zst
sway-b997147284b9d5632f1f929f02a17936a77cd7ec.zip
config: Fix swaybar pango_markup inconsistency
Until now, swaybar did not have pango markup enabled by default, even if the sway config had it on. This patch aims to mimic the i3 behavior, but maintaining the functionality of the "pango_markup" sway config command.
-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",