aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-18 23:49:50 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2015-12-19 00:13:51 +0100
commit9d7f1afdfb62a5851a38c8add7d05ae45a87066a (patch)
tree8770c0a2cd74ec54a7b1f5b48e7610aff125ece7 /sway
parentMerge pull request #357 from sce/fix_swaybar_crashes (diff)
downloadsway-9d7f1afdfb62a5851a38c8add7d05ae45a87066a.tar.gz
sway-9d7f1afdfb62a5851a38c8add7d05ae45a87066a.tar.zst
sway-9d7f1afdfb62a5851a38c8add7d05ae45a87066a.zip
Add bar option: swaybar_command <command>
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c19
-rw-r--r--sway/config.c1
2 files changed, 20 insertions, 0 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 24d56052..48e18e8a 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -79,6 +79,7 @@ static sway_cmd bar_cmd_position;
79static sway_cmd bar_cmd_separator_symbol; 79static sway_cmd bar_cmd_separator_symbol;
80static sway_cmd bar_cmd_status_command; 80static sway_cmd bar_cmd_status_command;
81static sway_cmd bar_cmd_strip_workspace_numbers; 81static sway_cmd bar_cmd_strip_workspace_numbers;
82static sway_cmd bar_cmd_swaybar_command;
82static sway_cmd bar_cmd_tray_output; 83static sway_cmd bar_cmd_tray_output;
83static sway_cmd bar_cmd_tray_padding; 84static sway_cmd bar_cmd_tray_padding;
84static sway_cmd bar_cmd_workspace_buttons; 85static sway_cmd bar_cmd_workspace_buttons;
@@ -1909,6 +1910,23 @@ static struct cmd_results *bar_cmd_strip_workspace_numbers(int argc, char **argv
1909 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 1910 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1910} 1911}
1911 1912
1913static struct cmd_results *bar_cmd_swaybar_command(int argc, char **argv) {
1914 struct cmd_results *error = NULL;
1915 if ((error = checkarg(argc, "swaybar_command", EXPECTED_AT_LEAST, 1))) {
1916 return error;
1917 }
1918
1919 if (!config->current_bar) {
1920 return cmd_results_new(CMD_FAILURE, "swaybar_command", "No bar defined.");
1921 }
1922
1923 free(config->current_bar->swaybar_command);
1924 config->current_bar->swaybar_command = join_args(argv, argc);
1925 sway_log(L_DEBUG, "Using custom swaybar command: %s", config->current_bar->swaybar_command);
1926
1927 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1928}
1929
1912static struct cmd_results *bar_cmd_tray_output(int argc, char **argv) { 1930static struct cmd_results *bar_cmd_tray_output(int argc, char **argv) {
1913 sway_log(L_ERROR, "warning: tray_output is not supported on wayland"); 1931 sway_log(L_ERROR, "warning: tray_output is not supported on wayland");
1914 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 1932 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
@@ -1977,6 +1995,7 @@ static struct cmd_handler bar_handlers[] = {
1977 { "separator_symbol", bar_cmd_separator_symbol }, 1995 { "separator_symbol", bar_cmd_separator_symbol },
1978 { "status_command", bar_cmd_status_command }, 1996 { "status_command", bar_cmd_status_command },
1979 { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers }, 1997 { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers },
1998 { "swaybar_command", bar_cmd_swaybar_command },
1980 { "tray_output", bar_cmd_tray_output }, 1999 { "tray_output", bar_cmd_tray_output },
1981 { "tray_padding", bar_cmd_tray_padding }, 2000 { "tray_padding", bar_cmd_tray_padding },
1982 { "workspace_buttons", bar_cmd_workspace_buttons }, 2001 { "workspace_buttons", bar_cmd_workspace_buttons },
diff --git a/sway/config.c b/sway/config.c
index 970225f4..32135286 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -610,6 +610,7 @@ struct bar_config *default_bar_config(void) {
610 bar->position = DESKTOP_SHELL_PANEL_POSITION_BOTTOM; 610 bar->position = DESKTOP_SHELL_PANEL_POSITION_BOTTOM;
611 bar->bindings = create_list(); 611 bar->bindings = create_list();
612 bar->status_command = strdup("while :; do date +'%Y-%m-%d %l:%M:%S %p' && sleep 1; done"); 612 bar->status_command = strdup("while :; do date +'%Y-%m-%d %l:%M:%S %p' && sleep 1; done");
613 bar->swaybar_command = NULL;
613 bar->font = strdup("monospace 10"); 614 bar->font = strdup("monospace 10");
614 bar->height = -1; 615 bar->height = -1;
615 bar->workspace_buttons = true; 616 bar->workspace_buttons = true;