diff options
-rw-r--r-- | sway/commands.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 0f965638..f90a5ae9 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -65,6 +65,7 @@ static sway_cmd cmd_sticky; | |||
65 | static sway_cmd cmd_workspace; | 65 | static sway_cmd cmd_workspace; |
66 | static sway_cmd cmd_ws_auto_back_and_forth; | 66 | static sway_cmd cmd_ws_auto_back_and_forth; |
67 | 67 | ||
68 | static sway_cmd bar_cmd_binding_mode_indicator; | ||
68 | static sway_cmd bar_cmd_bindsym; | 69 | static sway_cmd bar_cmd_bindsym; |
69 | static sway_cmd bar_cmd_colors; | 70 | static sway_cmd bar_cmd_colors; |
70 | static sway_cmd bar_cmd_font; | 71 | static sway_cmd bar_cmd_font; |
@@ -1543,6 +1544,29 @@ static struct cmd_handler handlers[] = { | |||
1543 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, | 1544 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, |
1544 | }; | 1545 | }; |
1545 | 1546 | ||
1547 | static struct cmd_results *bar_cmd_binding_mode_indicator(int argc, char **argv) { | ||
1548 | struct cmd_results *error = NULL; | ||
1549 | if ((error = checkarg(argc, "binding_mode_indicator", EXPECTED_EQUAL_TO, 1))) { | ||
1550 | return error; | ||
1551 | } | ||
1552 | |||
1553 | if (!config->current_bar) { | ||
1554 | return cmd_results_new(CMD_FAILURE, "binding_mode_indicator", "No bar defined."); | ||
1555 | } | ||
1556 | |||
1557 | if (strcasecmp("yes", argv[0]) == 0) { | ||
1558 | config->current_bar->binding_mode_indicator = true; | ||
1559 | sway_log(L_DEBUG, "Enabling binding mode indicator on bar: %s", config->current_bar->id); | ||
1560 | } else if (strcasecmp("no", argv[0]) == 0) { | ||
1561 | config->current_bar->binding_mode_indicator = false; | ||
1562 | sway_log(L_DEBUG, "Disabling binding mode indicator on bar: %s", config->current_bar->id); | ||
1563 | } else { | ||
1564 | error = cmd_results_new(CMD_INVALID, "binding_mode_indicator", "Invalid value %s", argv[0]); | ||
1565 | return error; | ||
1566 | } | ||
1567 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1568 | } | ||
1569 | |||
1546 | static struct cmd_results *bar_cmd_bindsym(int argc, char **argv) { | 1570 | static struct cmd_results *bar_cmd_bindsym(int argc, char **argv) { |
1547 | struct cmd_results *error = NULL; | 1571 | struct cmd_results *error = NULL; |
1548 | if ((error = checkarg(argc, "bindsym", EXPECTED_MORE_THAN, 1))) { | 1572 | if ((error = checkarg(argc, "bindsym", EXPECTED_MORE_THAN, 1))) { |
@@ -1910,7 +1934,7 @@ static struct cmd_results *bar_cmd_workspace_buttons(int argc, char **argv) { | |||
1910 | } | 1934 | } |
1911 | 1935 | ||
1912 | static struct cmd_handler bar_handlers[] = { | 1936 | static struct cmd_handler bar_handlers[] = { |
1913 | { "binding_mode_indicator", NULL }, | 1937 | { "binding_mode_indicator", bar_cmd_binding_mode_indicator }, |
1914 | { "bindsym", bar_cmd_bindsym }, | 1938 | { "bindsym", bar_cmd_bindsym }, |
1915 | { "colors", bar_cmd_colors }, | 1939 | { "colors", bar_cmd_colors }, |
1916 | { "font", bar_cmd_font }, | 1940 | { "font", bar_cmd_font }, |