diff options
-rw-r--r-- | sway/commands.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 92c9f3c2..aa4cb89e 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_mode; | ||
68 | static sway_cmd bar_cmd_hidden_state; | 69 | static sway_cmd bar_cmd_hidden_state; |
69 | static sway_cmd bar_cmd_id; | 70 | static sway_cmd bar_cmd_id; |
70 | static sway_cmd bar_cmd_position; | 71 | static sway_cmd bar_cmd_position; |
@@ -1562,6 +1563,32 @@ static struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) { | |||
1562 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 1563 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
1563 | } | 1564 | } |
1564 | 1565 | ||
1566 | static struct cmd_results *bar_cmd_mode(int argc, char **argv) { | ||
1567 | struct cmd_results *error = NULL; | ||
1568 | if ((error = checkarg(argc, "mode", EXPECTED_EQUAL_TO, 1))) { | ||
1569 | return error; | ||
1570 | } | ||
1571 | |||
1572 | const char *mode = argv[0]; | ||
1573 | char *old_mode = config->current_bar->mode; | ||
1574 | |||
1575 | if (strcasecmp("dock", mode) == 0) { | ||
1576 | config->current_bar->mode = strdup(mode); | ||
1577 | } else if(strcmp("hide", mode) == 0) { | ||
1578 | config->current_bar->mode = strdup(mode); | ||
1579 | } else if(strcmp("invisible", mode) == 0) { | ||
1580 | config->current_bar->mode = strdup(mode); | ||
1581 | } else { | ||
1582 | return cmd_results_new(CMD_INVALID, "mode", "Invalid value %s", mode); | ||
1583 | } | ||
1584 | |||
1585 | sway_log(L_DEBUG, "Setting mode: '%s' for bar: %s", mode, config->current_bar->id); | ||
1586 | |||
1587 | // free old mode | ||
1588 | free(old_mode); | ||
1589 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1590 | } | ||
1591 | |||
1565 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { | 1592 | static struct cmd_results *bar_cmd_id(int argc, char **argv) { |
1566 | struct cmd_results *error = NULL; | 1593 | struct cmd_results *error = NULL; |
1567 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { | 1594 | if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { |
@@ -1701,7 +1728,7 @@ static struct cmd_handler bar_handlers[] = { | |||
1701 | { "font", NULL }, | 1728 | { "font", NULL }, |
1702 | { "hidden_state", bar_cmd_hidden_state }, | 1729 | { "hidden_state", bar_cmd_hidden_state }, |
1703 | { "id", bar_cmd_id }, | 1730 | { "id", bar_cmd_id }, |
1704 | { "mode", NULL }, | 1731 | { "mode", bar_cmd_mode }, |
1705 | { "modifier", NULL }, | 1732 | { "modifier", NULL }, |
1706 | { "output", NULL }, | 1733 | { "output", NULL }, |
1707 | { "position", bar_cmd_position }, | 1734 | { "position", bar_cmd_position }, |