aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/commands/bar.c38
-rw-r--r--sway/commands/bar/bind.c3
-rw-r--r--sway/commands/bar/binding_mode_indicator.c5
-rw-r--r--sway/commands/bar/font.c3
-rw-r--r--sway/commands/bar/gaps.c3
-rw-r--r--sway/commands/bar/icon_theme.c4
-rw-r--r--sway/commands/bar/modifier.c4
-rw-r--r--sway/commands/bar/output.c3
-rw-r--r--sway/commands/bar/pango_markup.c7
-rw-r--r--sway/commands/bar/position.c3
-rw-r--r--sway/commands/bar/separator_symbol.c3
-rw-r--r--sway/commands/bar/status_command.c3
-rw-r--r--sway/commands/bar/strip_workspace_name.c3
-rw-r--r--sway/commands/bar/strip_workspace_numbers.c5
-rw-r--r--sway/commands/bar/swaybar_command.c3
-rw-r--r--sway/commands/bar/tray_bind.c3
-rw-r--r--sway/commands/bar/tray_output.c4
-rw-r--r--sway/commands/bar/tray_padding.c3
-rw-r--r--sway/commands/bar/workspace_buttons.c5
-rw-r--r--sway/commands/bar/wrap_scroll.c5
20 files changed, 27 insertions, 83 deletions
diff --git a/sway/commands/bar.c b/sway/commands/bar.c
index 73be7040..9c7357dd 100644
--- a/sway/commands/bar.c
+++ b/sway/commands/bar.c
@@ -82,26 +82,30 @@ struct cmd_results *cmd_bar(int argc, char **argv) {
82 ++argv; --argc; 82 ++argv; --argc;
83 } 83 }
84 84
85 if (!config->current_bar && config->reading) { 85 if (!config->current_bar) {
86 // Create new bar with default values 86 if (config->reading) {
87 struct bar_config *bar = default_bar_config(); 87 // Create new bar with default values
88 if (!bar) { 88 struct bar_config *bar = default_bar_config();
89 return cmd_results_new(CMD_FAILURE, 89 if (!bar) {
90 "Unable to allocate bar state"); 90 return cmd_results_new(CMD_FAILURE,
91 } 91 "Unable to allocate bar state");
92 }
93
94 // set bar id
95 int len = snprintf(NULL, 0, "bar-%d", config->bars->length - 1) + 1;
96 bar->id = malloc(len * sizeof(char));
97 if (bar->id) {
98 snprintf(bar->id, len, "bar-%d", config->bars->length - 1);
99 } else {
100 return cmd_results_new(CMD_FAILURE, "Unable to allocate bar ID");
101 }
92 102
93 // set bar id 103 // Set current bar
94 const int len = snprintf(NULL, 0, "bar-%d", config->bars->length - 1) + 1; 104 config->current_bar = bar;
95 bar->id = malloc(len * sizeof(char)); 105 sway_log(SWAY_DEBUG, "Creating bar %s", bar->id);
96 if (bar->id) {
97 snprintf(bar->id, len, "bar-%d", config->bars->length - 1);
98 } else { 106 } else {
99 return cmd_results_new(CMD_FAILURE, "Unable to allocate bar ID"); 107 return cmd_results_new(CMD_FAILURE, "No bar defined.");
100 } 108 }
101
102 // Set current bar
103 config->current_bar = bar;
104 sway_log(SWAY_DEBUG, "Creating bar %s", bar->id);
105 } 109 }
106 110
107 if (find_handler(argv[0], bar_config_handlers, 111 if (find_handler(argv[0], bar_config_handlers,
diff --git a/sway/commands/bar/bind.c b/sway/commands/bar/bind.c
index f94b4811..b4b5bc45 100644
--- a/sway/commands/bar/bind.c
+++ b/sway/commands/bar/bind.c
@@ -75,9 +75,6 @@ static struct cmd_results *bar_cmd_bind(int argc, char **argv, bool code,
75 if ((error = checkarg(argc, command, EXPECTED_AT_LEAST, minargs))) { 75 if ((error = checkarg(argc, command, EXPECTED_AT_LEAST, minargs))) {
76 return error; 76 return error;
77 } 77 }
78 if (!config->current_bar) {
79 return cmd_results_new(CMD_FAILURE, "No bar defined.");
80 }
81 78
82 struct bar_binding *binding = calloc(1, sizeof(struct bar_binding)); 79 struct bar_binding *binding = calloc(1, sizeof(struct bar_binding));
83 if (!binding) { 80 if (!binding) {
diff --git a/sway/commands/bar/binding_mode_indicator.c b/sway/commands/bar/binding_mode_indicator.c
index 29c93ddc..b58d8a83 100644
--- a/sway/commands/bar/binding_mode_indicator.c
+++ b/sway/commands/bar/binding_mode_indicator.c
@@ -10,10 +10,7 @@ struct cmd_results *bar_cmd_binding_mode_indicator(int argc, char **argv) {
10 "binding_mode_indicator", EXPECTED_EQUAL_TO, 1))) { 10 "binding_mode_indicator", EXPECTED_EQUAL_TO, 1))) {
11 return error; 11 return error;
12 } 12 }
13 if (!config->current_bar) { 13 config->current_bar->binding_mode_indicator =
14 return cmd_results_new(CMD_FAILURE, "No bar defined.");
15 }
16 config->current_bar->binding_mode_indicator =
17 parse_boolean(argv[0], config->current_bar->binding_mode_indicator); 14 parse_boolean(argv[0], config->current_bar->binding_mode_indicator);
18 if (config->current_bar->binding_mode_indicator) { 15 if (config->current_bar->binding_mode_indicator) {
19 sway_log(SWAY_DEBUG, "Enabling binding mode indicator on bar: %s", 16 sway_log(SWAY_DEBUG, "Enabling binding mode indicator on bar: %s",
diff --git a/sway/commands/bar/font.c b/sway/commands/bar/font.c
index cf1f759e..62987f3e 100644
--- a/sway/commands/bar/font.c
+++ b/sway/commands/bar/font.c
@@ -9,9 +9,6 @@ struct cmd_results *bar_cmd_font(int argc, char **argv) {
9 if ((error = checkarg(argc, "font", EXPECTED_AT_LEAST, 1))) { 9 if ((error = checkarg(argc, "font", EXPECTED_AT_LEAST, 1))) {
10 return error; 10 return error;
11 } 11 }
12 if (!config->current_bar) {
13 return cmd_results_new(CMD_FAILURE, "No bar defined.");
14 }
15 char *font = join_args(argv, argc); 12 char *font = join_args(argv, argc);
16 free(config->current_bar->font); 13 free(config->current_bar->font);
17 config->current_bar->font = font; 14 config->current_bar->font = font;
diff --git a/sway/commands/bar/gaps.c b/sway/commands/bar/gaps.c
index 83480fb5..f99966b4 100644
--- a/sway/commands/bar/gaps.c
+++ b/sway/commands/bar/gaps.c
@@ -13,9 +13,6 @@ struct cmd_results *bar_cmd_gaps(int argc, char **argv) {
13 if ((error = checkarg(argc, "gaps", EXPECTED_AT_MOST, 4))) { 13 if ((error = checkarg(argc, "gaps", EXPECTED_AT_MOST, 4))) {
14 return error; 14 return error;
15 } 15 }
16 if (!config->current_bar) {
17 return cmd_results_new(CMD_FAILURE, "No bar defined.");
18 }
19 16
20 int top = 0, right = 0, bottom = 0, left = 0; 17 int top = 0, right = 0, bottom = 0, left = 0;
21 18
diff --git a/sway/commands/bar/icon_theme.c b/sway/commands/bar/icon_theme.c
index 54b7b16e..6ac07843 100644
--- a/sway/commands/bar/icon_theme.c
+++ b/sway/commands/bar/icon_theme.c
@@ -12,10 +12,6 @@ struct cmd_results *bar_cmd_icon_theme(int argc, char **argv) {
12 return error; 12 return error;
13 } 13 }
14 14
15 if (!config->current_bar) {
16 return cmd_results_new(CMD_FAILURE, "No bar defined.");
17 }
18
19 sway_log(SWAY_DEBUG, "[Bar %s] Setting icon theme to %s", 15 sway_log(SWAY_DEBUG, "[Bar %s] Setting icon theme to %s",
20 config->current_bar->id, argv[0]); 16 config->current_bar->id, argv[0]);
21 free(config->current_bar->icon_theme); 17 free(config->current_bar->icon_theme);
diff --git a/sway/commands/bar/modifier.c b/sway/commands/bar/modifier.c
index d25d01d4..983d2179 100644
--- a/sway/commands/bar/modifier.c
+++ b/sway/commands/bar/modifier.c
@@ -10,10 +10,6 @@ struct cmd_results *bar_cmd_modifier(int argc, char **argv) {
10 return error; 10 return error;
11 } 11 }
12 12
13 if (!config->current_bar) {
14 return cmd_results_new(CMD_FAILURE, "No bar defined.");
15 }
16
17 uint32_t mod = 0; 13 uint32_t mod = 0;
18 if (strcmp(argv[0], "none") != 0) { 14 if (strcmp(argv[0], "none") != 0) {
19 list_t *split = split_string(argv[0], "+"); 15 list_t *split = split_string(argv[0], "+");
diff --git a/sway/commands/bar/output.c b/sway/commands/bar/output.c
index 956c1959..6a78b30d 100644
--- a/sway/commands/bar/output.c
+++ b/sway/commands/bar/output.c
@@ -10,9 +10,6 @@ struct cmd_results *bar_cmd_output(int argc, char **argv) {
10 if ((error = checkarg(argc, "output", EXPECTED_EQUAL_TO, 1))) { 10 if ((error = checkarg(argc, "output", EXPECTED_EQUAL_TO, 1))) {
11 return error; 11 return error;
12 } 12 }
13 if (!config->current_bar) {
14 return cmd_results_new(CMD_FAILURE, "No bar defined.");
15 }
16 13
17 const char *output = argv[0]; 14 const char *output = argv[0];
18 list_t *outputs = config->current_bar->outputs; 15 list_t *outputs = config->current_bar->outputs;
diff --git a/sway/commands/bar/pango_markup.c b/sway/commands/bar/pango_markup.c
index b0958cf1..ee51390d 100644
--- a/sway/commands/bar/pango_markup.c
+++ b/sway/commands/bar/pango_markup.c
@@ -9,11 +9,8 @@ struct cmd_results *bar_cmd_pango_markup(int argc, char **argv) {
9 if ((error = checkarg(argc, "pango_markup", EXPECTED_EQUAL_TO, 1))) { 9 if ((error = checkarg(argc, "pango_markup", EXPECTED_EQUAL_TO, 1))) {
10 return error; 10 return error;
11 } 11 }
12 if (!config->current_bar) { 12 config->current_bar->pango_markup =
13 return cmd_results_new(CMD_FAILURE, "No bar defined."); 13 parse_boolean(argv[0], config->current_bar->pango_markup);
14 }
15 config->current_bar->pango_markup
16 = parse_boolean(argv[0], config->current_bar->pango_markup);
17 if (config->current_bar->pango_markup) { 14 if (config->current_bar->pango_markup) {
18 sway_log(SWAY_DEBUG, "Enabling pango markup for bar: %s", 15 sway_log(SWAY_DEBUG, "Enabling pango markup for bar: %s",
19 config->current_bar->id); 16 config->current_bar->id);
diff --git a/sway/commands/bar/position.c b/sway/commands/bar/position.c
index 4456d724..b207de0b 100644
--- a/sway/commands/bar/position.c
+++ b/sway/commands/bar/position.c
@@ -9,9 +9,6 @@ struct cmd_results *bar_cmd_position(int argc, char **argv) {
9 if ((error = checkarg(argc, "position", EXPECTED_EQUAL_TO, 1))) { 9 if ((error = checkarg(argc, "position", EXPECTED_EQUAL_TO, 1))) {
10 return error; 10 return error;
11 } 11 }
12 if (!config->current_bar) {
13 return cmd_results_new(CMD_FAILURE, "No bar defined.");
14 }
15 char *valid[] = { "top", "bottom" }; 12 char *valid[] = { "top", "bottom" };
16 for (size_t i = 0; i < sizeof(valid) / sizeof(valid[0]); ++i) { 13 for (size_t i = 0; i < sizeof(valid) / sizeof(valid[0]); ++i) {
17 if (strcasecmp(valid[i], argv[0]) == 0) { 14 if (strcasecmp(valid[i], argv[0]) == 0) {
diff --git a/sway/commands/bar/separator_symbol.c b/sway/commands/bar/separator_symbol.c
index 76e99b49..6737d4d2 100644
--- a/sway/commands/bar/separator_symbol.c
+++ b/sway/commands/bar/separator_symbol.c
@@ -8,9 +8,6 @@ struct cmd_results *bar_cmd_separator_symbol(int argc, char **argv) {
8 if ((error = checkarg(argc, "separator_symbol", EXPECTED_EQUAL_TO, 1))) { 8 if ((error = checkarg(argc, "separator_symbol", EXPECTED_EQUAL_TO, 1))) {
9 return error; 9 return error;
10 } 10 }
11 if (!config->current_bar) {
12 return cmd_results_new(CMD_FAILURE, "No bar defined.");
13 }
14 free(config->current_bar->separator_symbol); 11 free(config->current_bar->separator_symbol);
15 config->current_bar->separator_symbol = strdup(argv[0]); 12 config->current_bar->separator_symbol = strdup(argv[0]);
16 sway_log(SWAY_DEBUG, "Settings separator_symbol '%s' for bar: %s", 13 sway_log(SWAY_DEBUG, "Settings separator_symbol '%s' for bar: %s",
diff --git a/sway/commands/bar/status_command.c b/sway/commands/bar/status_command.c
index 0b58e5fa..77a73ab6 100644
--- a/sway/commands/bar/status_command.c
+++ b/sway/commands/bar/status_command.c
@@ -8,9 +8,6 @@ struct cmd_results *bar_cmd_status_command(int argc, char **argv) {
8 if ((error = checkarg(argc, "status_command", EXPECTED_AT_LEAST, 1))) { 8 if ((error = checkarg(argc, "status_command", EXPECTED_AT_LEAST, 1))) {
9 return error; 9 return error;
10 } 10 }
11 if (!config->current_bar) {
12 return cmd_results_new(CMD_FAILURE, "No bar defined.");
13 }
14 free(config->current_bar->status_command); 11 free(config->current_bar->status_command);
15 config->current_bar->status_command = NULL; 12 config->current_bar->status_command = NULL;
16 13
diff --git a/sway/commands/bar/strip_workspace_name.c b/sway/commands/bar/strip_workspace_name.c
index 1aa39359..764321a8 100644
--- a/sway/commands/bar/strip_workspace_name.c
+++ b/sway/commands/bar/strip_workspace_name.c
@@ -10,9 +10,6 @@ struct cmd_results *bar_cmd_strip_workspace_name(int argc, char **argv) {
10 "strip_workspace_name", EXPECTED_EQUAL_TO, 1))) { 10 "strip_workspace_name", EXPECTED_EQUAL_TO, 1))) {
11 return error; 11 return error;
12 } 12 }
13 if (!config->current_bar) {
14 return cmd_results_new(CMD_FAILURE, "No bar defined.");
15 }
16 13
17 config->current_bar->strip_workspace_name = 14 config->current_bar->strip_workspace_name =
18 parse_boolean(argv[0], config->current_bar->strip_workspace_name); 15 parse_boolean(argv[0], config->current_bar->strip_workspace_name);
diff --git a/sway/commands/bar/strip_workspace_numbers.c b/sway/commands/bar/strip_workspace_numbers.c
index 56c4c4a1..2d7fe1a7 100644
--- a/sway/commands/bar/strip_workspace_numbers.c
+++ b/sway/commands/bar/strip_workspace_numbers.c
@@ -10,10 +10,7 @@ struct cmd_results *bar_cmd_strip_workspace_numbers(int argc, char **argv) {
10 "strip_workspace_numbers", EXPECTED_EQUAL_TO, 1))) { 10 "strip_workspace_numbers", EXPECTED_EQUAL_TO, 1))) {
11 return error; 11 return error;
12 } 12 }
13 if (!config->current_bar) { 13
14 return cmd_results_new(CMD_FAILURE, "No bar defined.");
15 }
16
17 config->current_bar->strip_workspace_numbers = 14 config->current_bar->strip_workspace_numbers =
18 parse_boolean(argv[0], config->current_bar->strip_workspace_numbers); 15 parse_boolean(argv[0], config->current_bar->strip_workspace_numbers);
19 16
diff --git a/sway/commands/bar/swaybar_command.c b/sway/commands/bar/swaybar_command.c
index b54bafa9..0892a898 100644
--- a/sway/commands/bar/swaybar_command.c
+++ b/sway/commands/bar/swaybar_command.c
@@ -8,9 +8,6 @@ struct cmd_results *bar_cmd_swaybar_command(int argc, char **argv) {
8 if ((error = checkarg(argc, "swaybar_command", EXPECTED_AT_LEAST, 1))) { 8 if ((error = checkarg(argc, "swaybar_command", EXPECTED_AT_LEAST, 1))) {
9 return error; 9 return error;
10 } 10 }
11 if (!config->current_bar) {
12 return cmd_results_new(CMD_FAILURE, "No bar defined.");
13 }
14 free(config->current_bar->swaybar_command); 11 free(config->current_bar->swaybar_command);
15 config->current_bar->swaybar_command = join_args(argv, argc); 12 config->current_bar->swaybar_command = join_args(argv, argc);
16 sway_log(SWAY_DEBUG, "Using custom swaybar command: %s", 13 sway_log(SWAY_DEBUG, "Using custom swaybar command: %s",
diff --git a/sway/commands/bar/tray_bind.c b/sway/commands/bar/tray_bind.c
index 7fe67c42..c910d106 100644
--- a/sway/commands/bar/tray_bind.c
+++ b/sway/commands/bar/tray_bind.c
@@ -12,9 +12,6 @@ static struct cmd_results *tray_bind(int argc, char **argv, bool code) {
12 if ((error = checkarg(argc, command, EXPECTED_EQUAL_TO, 2))) { 12 if ((error = checkarg(argc, command, EXPECTED_EQUAL_TO, 2))) {
13 return error; 13 return error;
14 } 14 }
15 if (!config->current_bar) {
16 return cmd_results_new(CMD_FAILURE, "No bar defined.");
17 }
18 15
19 struct tray_binding *binding = calloc(1, sizeof(struct tray_binding)); 16 struct tray_binding *binding = calloc(1, sizeof(struct tray_binding));
20 if (!binding) { 17 if (!binding) {
diff --git a/sway/commands/bar/tray_output.c b/sway/commands/bar/tray_output.c
index 16e16f60..8bfdf193 100644
--- a/sway/commands/bar/tray_output.c
+++ b/sway/commands/bar/tray_output.c
@@ -13,10 +13,6 @@ struct cmd_results *bar_cmd_tray_output(int argc, char **argv) {
13 return error; 13 return error;
14 } 14 }
15 15
16 if (!config->current_bar) {
17 return cmd_results_new(CMD_FAILURE, "No bar defined.");
18 }
19
20 list_t *outputs = config->current_bar->tray_outputs; 16 list_t *outputs = config->current_bar->tray_outputs;
21 if (!outputs) { 17 if (!outputs) {
22 config->current_bar->tray_outputs = outputs = create_list(); 18 config->current_bar->tray_outputs = outputs = create_list();
diff --git a/sway/commands/bar/tray_padding.c b/sway/commands/bar/tray_padding.c
index f43cfe4f..f90b6003 100644
--- a/sway/commands/bar/tray_padding.c
+++ b/sway/commands/bar/tray_padding.c
@@ -15,9 +15,6 @@ struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) {
15 return error; 15 return error;
16 } 16 }
17 17
18 if (!config->current_bar) {
19 return cmd_results_new(CMD_FAILURE, "No bar defined.");
20 }
21 struct bar_config *bar = config->current_bar; 18 struct bar_config *bar = config->current_bar;
22 19
23 char *end; 20 char *end;
diff --git a/sway/commands/bar/workspace_buttons.c b/sway/commands/bar/workspace_buttons.c
index 792ef605..6bfb1616 100644
--- a/sway/commands/bar/workspace_buttons.c
+++ b/sway/commands/bar/workspace_buttons.c
@@ -9,10 +9,7 @@ struct cmd_results *bar_cmd_workspace_buttons(int argc, char **argv) {
9 if ((error = checkarg(argc, "workspace_buttons", EXPECTED_EQUAL_TO, 1))) { 9 if ((error = checkarg(argc, "workspace_buttons", EXPECTED_EQUAL_TO, 1))) {
10 return error; 10 return error;
11 } 11 }
12 if (!config->current_bar) { 12 config->current_bar->workspace_buttons =
13 return cmd_results_new(CMD_FAILURE, "No bar defined.");
14 }
15 config->current_bar->workspace_buttons =
16 parse_boolean(argv[0], config->current_bar->workspace_buttons); 13 parse_boolean(argv[0], config->current_bar->workspace_buttons);
17 if (config->current_bar->workspace_buttons) { 14 if (config->current_bar->workspace_buttons) {
18 sway_log(SWAY_DEBUG, "Enabling workspace buttons on bar: %s", 15 sway_log(SWAY_DEBUG, "Enabling workspace buttons on bar: %s",
diff --git a/sway/commands/bar/wrap_scroll.c b/sway/commands/bar/wrap_scroll.c
index decd238d..f57e393d 100644
--- a/sway/commands/bar/wrap_scroll.c
+++ b/sway/commands/bar/wrap_scroll.c
@@ -9,10 +9,7 @@ struct cmd_results *bar_cmd_wrap_scroll(int argc, char **argv) {
9 if ((error = checkarg(argc, "wrap_scroll", EXPECTED_EQUAL_TO, 1))) { 9 if ((error = checkarg(argc, "wrap_scroll", EXPECTED_EQUAL_TO, 1))) {
10 return error; 10 return error;
11 } 11 }
12 if (!config->current_bar) { 12 config->current_bar->wrap_scroll =
13 return cmd_results_new(CMD_FAILURE, "No bar defined.");
14 }
15 config->current_bar->wrap_scroll =
16 parse_boolean(argv[0], config->current_bar->wrap_scroll); 13 parse_boolean(argv[0], config->current_bar->wrap_scroll);
17 if (config->current_bar->wrap_scroll) { 14 if (config->current_bar->wrap_scroll) {
18 sway_log(SWAY_DEBUG, "Enabling wrap scroll on bar: %s", 15 sway_log(SWAY_DEBUG, "Enabling wrap scroll on bar: %s",