aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-14 20:15:58 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-14 20:15:58 +0100
commit0d1eb5553c09e78f6071c75ba53c692be9617406 (patch)
tree3692de5b362e8e43cbcdaf6fb42dc541e1030495 /sway
parentMerge pull request #318 from mikkeloscar/bar-hidden-state (diff)
downloadsway-0d1eb5553c09e78f6071c75ba53c692be9617406.tar.gz
sway-0d1eb5553c09e78f6071c75ba53c692be9617406.tar.zst
sway-0d1eb5553c09e78f6071c75ba53c692be9617406.zip
Implement bar option: mode <dock|hide|invisible>
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 6d40344d..a394c69d 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -65,6 +65,7 @@ static sway_cmd cmd_sticky;
65static sway_cmd cmd_workspace; 65static sway_cmd cmd_workspace;
66static sway_cmd cmd_ws_auto_back_and_forth; 66static sway_cmd cmd_ws_auto_back_and_forth;
67 67
68static sway_cmd bar_cmd_mode;
68static sway_cmd bar_cmd_hidden_state; 69static sway_cmd bar_cmd_hidden_state;
69static sway_cmd bar_cmd_id; 70static sway_cmd bar_cmd_id;
70static sway_cmd bar_cmd_position; 71static sway_cmd bar_cmd_position;
@@ -1549,6 +1550,32 @@ static struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) {
1549 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 1550 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1550} 1551}
1551 1552
1553static struct cmd_results *bar_cmd_mode(int argc, char **argv) {
1554 struct cmd_results *error = NULL;
1555 if ((error = checkarg(argc, "mode", EXPECTED_EQUAL_TO, 1))) {
1556 return error;
1557 }
1558
1559 const char *mode = argv[0];
1560 char *old_mode = config->current_bar->mode;
1561
1562 if (strcasecmp("dock", mode) == 0) {
1563 config->current_bar->mode = strdup(mode);
1564 } else if(strcmp("hide", mode) == 0) {
1565 config->current_bar->mode = strdup(mode);
1566 } else if(strcmp("invisible", mode) == 0) {
1567 config->current_bar->mode = strdup(mode);
1568 } else {
1569 return cmd_results_new(CMD_INVALID, "mode", "Invalid value %s", mode);
1570 }
1571
1572 sway_log(L_DEBUG, "Setting mode: '%s' for bar: %s", mode, config->current_bar->id);
1573
1574 // free old mode
1575 free(old_mode);
1576 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1577}
1578
1552static struct cmd_results *bar_cmd_id(int argc, char **argv) { 1579static struct cmd_results *bar_cmd_id(int argc, char **argv) {
1553 struct cmd_results *error = NULL; 1580 struct cmd_results *error = NULL;
1554 if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { 1581 if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) {
@@ -1688,7 +1715,7 @@ static struct cmd_handler bar_handlers[] = {
1688 { "font", NULL }, 1715 { "font", NULL },
1689 { "hidden_state", bar_cmd_hidden_state }, 1716 { "hidden_state", bar_cmd_hidden_state },
1690 { "id", bar_cmd_id }, 1717 { "id", bar_cmd_id },
1691 { "mode", NULL }, 1718 { "mode", bar_cmd_mode },
1692 { "modifier", NULL }, 1719 { "modifier", NULL },
1693 { "output", NULL }, 1720 { "output", NULL },
1694 { "position", bar_cmd_position }, 1721 { "position", bar_cmd_position },