diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-12-14 09:59:13 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-12-14 09:59:13 -0500 |
commit | 0b2cf8b65c0ebefa355e575134965cbbc540a9bb (patch) | |
tree | ce2234e943010d6ff1d725cc595e0b95967a8c5c | |
parent | Revert "Make mouse key used for drag/resize configurable" (diff) | |
parent | Add more debug logging to bar option parsing (diff) | |
download | sway-0b2cf8b65c0ebefa355e575134965cbbc540a9bb.tar.gz sway-0b2cf8b65c0ebefa355e575134965cbbc540a9bb.tar.zst sway-0b2cf8b65c0ebefa355e575134965cbbc540a9bb.zip |
Merge pull request #313 from mikkeloscar/bar-confing-subcommands
Bar confing subcommands
-rw-r--r-- | sway/commands.c | 67 |
1 files changed, 64 insertions, 3 deletions
diff --git a/sway/commands.c b/sway/commands.c index ad43c4d5..b0235dba 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -64,6 +64,9 @@ static sway_cmd cmd_sticky; | |||
64 | static sway_cmd cmd_workspace; | 64 | static sway_cmd cmd_workspace; |
65 | static sway_cmd cmd_ws_auto_back_and_forth; | 65 | static sway_cmd cmd_ws_auto_back_and_forth; |
66 | 66 | ||
67 | static sway_cmd bar_cmd_position; | ||
68 | static sway_cmd bar_cmd_strip_workspace_numbers; | ||
69 | static sway_cmd bar_cmd_tray_output; | ||
67 | static sway_cmd bar_cmd_tray_padding; | 70 | static sway_cmd bar_cmd_tray_padding; |
68 | static sway_cmd bar_cmd_workspace_buttons; | 71 | static sway_cmd bar_cmd_workspace_buttons; |
69 | 72 | ||
@@ -1508,6 +1511,61 @@ static struct cmd_handler handlers[] = { | |||
1508 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, | 1511 | { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, |
1509 | }; | 1512 | }; |
1510 | 1513 | ||
1514 | static struct cmd_results *bar_cmd_position(int argc, char **argv) { | ||
1515 | struct cmd_results *error = NULL; | ||
1516 | if ((error = checkarg(argc, "position", EXPECTED_EQUAL_TO, 1))) { | ||
1517 | return error; | ||
1518 | } | ||
1519 | |||
1520 | if (!config->current_bar) { | ||
1521 | return cmd_results_new(CMD_FAILURE, "position", "No bar defined."); | ||
1522 | } | ||
1523 | |||
1524 | if (strcasecmp("top", argv[0]) == 0) { | ||
1525 | config->current_bar->position = DESKTOP_SHELL_PANEL_POSITION_TOP; | ||
1526 | } else if (strcasecmp("bottom", argv[0]) == 0) { | ||
1527 | config->current_bar->position = DESKTOP_SHELL_PANEL_POSITION_BOTTOM; | ||
1528 | } else if (strcasecmp("left", argv[0]) == 0) { | ||
1529 | config->current_bar->position = DESKTOP_SHELL_PANEL_POSITION_LEFT; | ||
1530 | } else if (strcasecmp("right", argv[0]) == 0) { | ||
1531 | config->current_bar->position = DESKTOP_SHELL_PANEL_POSITION_RIGHT; | ||
1532 | } else { | ||
1533 | error = cmd_results_new(CMD_INVALID, "position", "Invalid value %s", argv[0]); | ||
1534 | return error; | ||
1535 | } | ||
1536 | |||
1537 | sway_log(L_DEBUG, "Setting bar position '%s'", argv[0]); | ||
1538 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1539 | } | ||
1540 | |||
1541 | static struct cmd_results *bar_cmd_strip_workspace_numbers(int argc, char **argv) { | ||
1542 | struct cmd_results *error = NULL; | ||
1543 | if ((error = checkarg(argc, "strip_workspace_numbers", EXPECTED_EQUAL_TO, 1))) { | ||
1544 | return error; | ||
1545 | } | ||
1546 | |||
1547 | if (!config->current_bar) { | ||
1548 | return cmd_results_new(CMD_FAILURE, "strip_workspace_numbers", "No bar defined."); | ||
1549 | } | ||
1550 | |||
1551 | if (strcasecmp("yes", argv[0]) == 0) { | ||
1552 | config->current_bar->strip_workspace_numbers = true; | ||
1553 | sway_log(L_DEBUG, "Stripping workspace numbers on bar"); | ||
1554 | } else if (strcasecmp("no", argv[0]) == 0) { | ||
1555 | config->current_bar->strip_workspace_numbers = false; | ||
1556 | sway_log(L_DEBUG, "Enabling workspace numbers on bar"); | ||
1557 | } else { | ||
1558 | error = cmd_results_new(CMD_INVALID, "strip_workspace_numbers", "Invalid value %s", argv[0]); | ||
1559 | return error; | ||
1560 | } | ||
1561 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1562 | } | ||
1563 | |||
1564 | static struct cmd_results *bar_cmd_tray_output(int argc, char **argv) { | ||
1565 | sway_log(L_ERROR, "warning: tray_output is not supported on wayland"); | ||
1566 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
1567 | } | ||
1568 | |||
1511 | static struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) { | 1569 | static struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) { |
1512 | struct cmd_results *error = NULL; | 1570 | struct cmd_results *error = NULL; |
1513 | if ((error = checkarg(argc, "tray_padding", EXPECTED_AT_LEAST, 1))) { | 1571 | if ((error = checkarg(argc, "tray_padding", EXPECTED_AT_LEAST, 1))) { |
@@ -1529,6 +1587,7 @@ static struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) { | |||
1529 | "Unknown unit %s", argv[1]); | 1587 | "Unknown unit %s", argv[1]); |
1530 | } | 1588 | } |
1531 | config->current_bar->tray_padding = padding; | 1589 | config->current_bar->tray_padding = padding; |
1590 | sway_log(L_DEBUG, "Enabling tray padding of %d px", padding); | ||
1532 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 1591 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
1533 | } | 1592 | } |
1534 | 1593 | ||
@@ -1544,8 +1603,10 @@ static struct cmd_results *bar_cmd_workspace_buttons(int argc, char **argv) { | |||
1544 | 1603 | ||
1545 | if (strcasecmp("yes", argv[0]) == 0) { | 1604 | if (strcasecmp("yes", argv[0]) == 0) { |
1546 | config->current_bar->workspace_buttons = true; | 1605 | config->current_bar->workspace_buttons = true; |
1606 | sway_log(L_DEBUG, "Enabling workspace buttons on bar"); | ||
1547 | } else if (strcasecmp("no", argv[0]) == 0) { | 1607 | } else if (strcasecmp("no", argv[0]) == 0) { |
1548 | config->current_bar->workspace_buttons = false; | 1608 | config->current_bar->workspace_buttons = false; |
1609 | sway_log(L_DEBUG, "Disabling workspace buttons on bar"); | ||
1549 | } else { | 1610 | } else { |
1550 | error = cmd_results_new(CMD_INVALID, "workspace_buttons", "Invalid value %s", argv[0]); | 1611 | error = cmd_results_new(CMD_INVALID, "workspace_buttons", "Invalid value %s", argv[0]); |
1551 | return error; | 1612 | return error; |
@@ -1563,11 +1624,11 @@ static struct cmd_handler bar_handlers[] = { | |||
1563 | { "mode", NULL }, | 1624 | { "mode", NULL }, |
1564 | { "modifier", NULL }, | 1625 | { "modifier", NULL }, |
1565 | { "output", NULL }, | 1626 | { "output", NULL }, |
1566 | { "position", NULL }, | 1627 | { "position", bar_cmd_position }, |
1567 | { "seperator_symbol", NULL }, | 1628 | { "seperator_symbol", NULL }, |
1568 | { "status_command", NULL }, | 1629 | { "status_command", NULL }, |
1569 | { "strip_workspace_numbers", NULL }, | 1630 | { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers }, |
1570 | { "tray_output", NULL }, | 1631 | { "tray_output", bar_cmd_tray_output }, |
1571 | { "tray_padding", bar_cmd_tray_padding }, | 1632 | { "tray_padding", bar_cmd_tray_padding }, |
1572 | { "workspace_buttons", bar_cmd_workspace_buttons }, | 1633 | { "workspace_buttons", bar_cmd_workspace_buttons }, |
1573 | }; | 1634 | }; |