summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-14 19:52:25 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-14 19:52:25 +0100
commitd6cd37d87346e4f1b89219a04e790dac1e1dfdfe (patch)
treec688d55076772f7b8c8e42492be3fa580256cc3d
parentMerge pull request #317 from mikkeloscar/bar-id-option (diff)
downloadsway-d6cd37d87346e4f1b89219a04e790dac1e1dfdfe.tar.gz
sway-d6cd37d87346e4f1b89219a04e790dac1e1dfdfe.tar.zst
sway-d6cd37d87346e4f1b89219a04e790dac1e1dfdfe.zip
Implement bar option: hidden_state <hide|show>
-rw-r--r--sway/commands.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 7eb076c4..6d40344d 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_hidden_state;
68static sway_cmd bar_cmd_id; 69static sway_cmd bar_cmd_id;
69static sway_cmd bar_cmd_position; 70static sway_cmd bar_cmd_position;
70static sway_cmd bar_cmd_strip_workspace_numbers; 71static sway_cmd bar_cmd_strip_workspace_numbers;
@@ -1524,6 +1525,30 @@ static struct cmd_handler handlers[] = {
1524 { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, 1525 { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth },
1525}; 1526};
1526 1527
1528static struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) {
1529 struct cmd_results *error = NULL;
1530 if ((error = checkarg(argc, "hidden_state", EXPECTED_EQUAL_TO, 1))) {
1531 return error;
1532 }
1533
1534 const char *state = argv[0];
1535 char *old_state = config->current_bar->hidden_state;
1536
1537 if (strcasecmp("hide", state) == 0) {
1538 config->current_bar->hidden_state = strdup(state);
1539 } else if(strcmp("show", state) == 0) {
1540 config->current_bar->hidden_state = strdup(state);
1541 } else {
1542 return cmd_results_new(CMD_INVALID, "hidden_state", "Invalid value %s", state);
1543 }
1544
1545 sway_log(L_DEBUG, "Setting hidden_state: '%s' for bar: %s", state, config->current_bar->id);
1546
1547 // free old state
1548 free(old_state);
1549 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1550}
1551
1527static struct cmd_results *bar_cmd_id(int argc, char **argv) { 1552static struct cmd_results *bar_cmd_id(int argc, char **argv) {
1528 struct cmd_results *error = NULL; 1553 struct cmd_results *error = NULL;
1529 if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) { 1554 if ((error = checkarg(argc, "id", EXPECTED_EQUAL_TO, 1))) {
@@ -1661,7 +1686,7 @@ static struct cmd_handler bar_handlers[] = {
1661 { "bindsym", NULL }, 1686 { "bindsym", NULL },
1662 { "colors", NULL }, 1687 { "colors", NULL },
1663 { "font", NULL }, 1688 { "font", NULL },
1664 { "hidden_state", NULL }, 1689 { "hidden_state", bar_cmd_hidden_state },
1665 { "id", bar_cmd_id }, 1690 { "id", bar_cmd_id },
1666 { "mode", NULL }, 1691 { "mode", NULL },
1667 { "modifier", NULL }, 1692 { "modifier", NULL },