aboutsummaryrefslogtreecommitdiff
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 {
struct side_gaps gaps_outer;
};
+enum pango_markup_config {
+ PANGO_MARKUP_DISABLED = false,
+ PANGO_MARKUP_ENABLED = true,
+ PANGO_MARKUP_DEFAULT // The default is font dependent ("pango:" prefix)
+};
+
struct bar_config {
char *swaybar_command;
struct wl_client *client;
@@ -323,7 +329,7 @@ struct bar_config {
char *position;
list_t *bindings;
char *status_command;
- bool pango_markup;
+ enum pango_markup_config pango_markup;
char *font;
int height; // -1 not defined
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) {
}
char *font = join_args(argv, argc);
free(config->current_bar->font);
- config->current_bar->font = font;
+
+ if (strncmp(font, "pango:", 6) == 0) {
+ if (config->current_bar->pango_markup == PANGO_MARKUP_DEFAULT) {
+ config->current_bar->pango_markup = true;
+ }
+ config->current_bar->font = strdup(font + 6);
+ } else {
+ if (config->current_bar->pango_markup == PANGO_MARKUP_DEFAULT) {
+ config->current_bar->pango_markup = false;
+ }
+ config->current_bar->font = strdup(font);
+ }
+
+ free(font);
sway_log(SWAY_DEBUG, "Settings font '%s' for bar: %s",
config->current_bar->font, config->current_bar->id);
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) {
}
bar->outputs = NULL;
bar->position = strdup("bottom");
- bar->pango_markup = false;
+ bar->pango_markup = PANGO_MARKUP_DEFAULT;
bar->swaybar_command = NULL;
bar->font = NULL;
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) {
json_object_object_add(json, "verbose",
json_object_new_boolean(bar->verbose));
json_object_object_add(json, "pango_markup",
- json_object_new_boolean(bar->pango_markup));
+ json_object_new_boolean(bar->pango_markup == PANGO_MARKUP_DEFAULT
+ ? config->pango_markup
+ : bar->pango_markup));
json_object *colors = json_object_new_object();
json_object_object_add(colors, "background",