diff options
-rw-r--r-- | sway/commands.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index d05a9069..0f965638 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -67,6 +67,7 @@ static sway_cmd cmd_ws_auto_back_and_forth; | |||
67 | 67 | ||
68 | static sway_cmd bar_cmd_bindsym; | 68 | static sway_cmd bar_cmd_bindsym; |
69 | static sway_cmd bar_cmd_colors; | 69 | static sway_cmd bar_cmd_colors; |
70 | static sway_cmd bar_cmd_font; | ||
70 | static sway_cmd bar_cmd_mode; | 71 | static sway_cmd bar_cmd_mode; |
71 | static sway_cmd bar_cmd_modifier; | 72 | static sway_cmd bar_cmd_modifier; |
72 | static sway_cmd bar_cmd_output; | 73 | static sway_cmd bar_cmd_output; |
@@ -1594,6 +1595,28 @@ static struct cmd_results *bar_cmd_colors(int argc, char **argv) { | |||
1594 | return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); | 1595 | return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); |
1595 | } | 1596 | } |
1596 | 1597 | ||
1598 | static struct cmd_results *bar_cmd_font(int argc, char **argv) { | ||
1599 | struct cmd_results *error = NULL; | ||
1600 | if ((error = checkarg(argc, "font", EXPECTED_AT_LEAST, 1))) { | ||
1601 | return error; | ||
1602 | } | ||
1603 | |||
1604 | if (!config->current_bar) { | ||
1605 | return cmd_results_new(CMD_FAILURE, "font", "No bar defined."); | ||
1606 | } | ||
1607 | |||
1608 | char *font = join_args(argv, argc); | ||
1609 | if (strlen(font) > 6 && strncmp("pango:", font, 6) == 0) { | ||
1610 | free(config->current_bar->font); | ||
1611 | config->current_bar->font = font; | ||
1612 | sway_log(L_DEBUG, "Settings font '%s' for bar: %s", config->current_bar->font, config->current_bar->id); | ||
1613 | } else { | ||
1614 | sway_log(L_ERROR, "warning: non-pango font '%s' not supported.", font); | ||
1615 | } | ||
1616 | |||
1617 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1618 | } | ||
1619 | |||
1597 | static struct cmd_results *bar_cmd_height(int argc, char **argv) { | 1620 | static struct cmd_results *bar_cmd_height(int argc, char **argv) { |
1598 | struct cmd_results *error = NULL; | 1621 | struct cmd_results *error = NULL; |
1599 | if ((error = checkarg(argc, "height", EXPECTED_EQUAL_TO, 1))) { | 1622 | if ((error = checkarg(argc, "height", EXPECTED_EQUAL_TO, 1))) { |
@@ -1890,7 +1913,7 @@ static struct cmd_handler bar_handlers[] = { | |||
1890 | { "binding_mode_indicator", NULL }, | 1913 | { "binding_mode_indicator", NULL }, |
1891 | { "bindsym", bar_cmd_bindsym }, | 1914 | { "bindsym", bar_cmd_bindsym }, |
1892 | { "colors", bar_cmd_colors }, | 1915 | { "colors", bar_cmd_colors }, |
1893 | { "font", NULL }, | 1916 | { "font", bar_cmd_font }, |
1894 | { "height", bar_cmd_height }, | 1917 | { "height", bar_cmd_height }, |
1895 | { "hidden_state", bar_cmd_hidden_state }, | 1918 | { "hidden_state", bar_cmd_hidden_state }, |
1896 | { "id", bar_cmd_id }, | 1919 | { "id", bar_cmd_id }, |