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 6eb383ba..f90a5ae9 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -68,6 +68,7 @@ static sway_cmd cmd_ws_auto_back_and_forth; | |||
68 | static sway_cmd bar_cmd_binding_mode_indicator; | 68 | static sway_cmd bar_cmd_binding_mode_indicator; |
69 | static sway_cmd bar_cmd_bindsym; | 69 | static sway_cmd bar_cmd_bindsym; |
70 | static sway_cmd bar_cmd_colors; | 70 | static sway_cmd bar_cmd_colors; |
71 | static sway_cmd bar_cmd_font; | ||
71 | static sway_cmd bar_cmd_mode; | 72 | static sway_cmd bar_cmd_mode; |
72 | static sway_cmd bar_cmd_modifier; | 73 | static sway_cmd bar_cmd_modifier; |
73 | static sway_cmd bar_cmd_output; | 74 | static sway_cmd bar_cmd_output; |
@@ -1618,6 +1619,28 @@ static struct cmd_results *bar_cmd_colors(int argc, char **argv) { | |||
1618 | return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); | 1619 | return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); |
1619 | } | 1620 | } |
1620 | 1621 | ||
1622 | static struct cmd_results *bar_cmd_font(int argc, char **argv) { | ||
1623 | struct cmd_results *error = NULL; | ||
1624 | if ((error = checkarg(argc, "font", EXPECTED_AT_LEAST, 1))) { | ||
1625 | return error; | ||
1626 | } | ||
1627 | |||
1628 | if (!config->current_bar) { | ||
1629 | return cmd_results_new(CMD_FAILURE, "font", "No bar defined."); | ||
1630 | } | ||
1631 | |||
1632 | char *font = join_args(argv, argc); | ||
1633 | if (strlen(font) > 6 && strncmp("pango:", font, 6) == 0) { | ||
1634 | free(config->current_bar->font); | ||
1635 | config->current_bar->font = font; | ||
1636 | sway_log(L_DEBUG, "Settings font '%s' for bar: %s", config->current_bar->font, config->current_bar->id); | ||
1637 | } else { | ||
1638 | sway_log(L_ERROR, "warning: non-pango font '%s' not supported.", font); | ||
1639 | } | ||
1640 | |||
1641 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1642 | } | ||
1643 | |||
1621 | static struct cmd_results *bar_cmd_height(int argc, char **argv) { | 1644 | static struct cmd_results *bar_cmd_height(int argc, char **argv) { |
1622 | struct cmd_results *error = NULL; | 1645 | struct cmd_results *error = NULL; |
1623 | if ((error = checkarg(argc, "height", EXPECTED_EQUAL_TO, 1))) { | 1646 | if ((error = checkarg(argc, "height", EXPECTED_EQUAL_TO, 1))) { |
@@ -1914,7 +1937,7 @@ static struct cmd_handler bar_handlers[] = { | |||
1914 | { "binding_mode_indicator", bar_cmd_binding_mode_indicator }, | 1937 | { "binding_mode_indicator", bar_cmd_binding_mode_indicator }, |
1915 | { "bindsym", bar_cmd_bindsym }, | 1938 | { "bindsym", bar_cmd_bindsym }, |
1916 | { "colors", bar_cmd_colors }, | 1939 | { "colors", bar_cmd_colors }, |
1917 | { "font", NULL }, | 1940 | { "font", bar_cmd_font }, |
1918 | { "height", bar_cmd_height }, | 1941 | { "height", bar_cmd_height }, |
1919 | { "hidden_state", bar_cmd_hidden_state }, | 1942 | { "hidden_state", bar_cmd_hidden_state }, |
1920 | { "id", bar_cmd_id }, | 1943 | { "id", bar_cmd_id }, |