diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-29 17:49:44 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-03-29 22:11:08 -0400 |
commit | 5c9cdbcdd2a07e2ced7b60d629a3e20bd7c8bf68 (patch) | |
tree | 08a5de486cfceb091b5b1faa5e8ea893bea1de57 /sway/config | |
parent | Move bar config into its own file (diff) | |
download | sway-5c9cdbcdd2a07e2ced7b60d629a3e20bd7c8bf68.tar.gz sway-5c9cdbcdd2a07e2ced7b60d629a3e20bd7c8bf68.tar.zst sway-5c9cdbcdd2a07e2ced7b60d629a3e20bd7c8bf68.zip |
Add swaybg_command
Diffstat (limited to 'sway/config')
-rw-r--r-- | sway/config/output.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/sway/config/output.c b/sway/config/output.c index 24b4a18e..c3ec61b7 100644 --- a/sway/config/output.c +++ b/sway/config/output.c | |||
@@ -180,19 +180,20 @@ void apply_output_config(struct output_config *oc, swayc_t *output) { | |||
180 | wlr_log(L_DEBUG, "Setting background for output %d to %s", | 180 | wlr_log(L_DEBUG, "Setting background for output %d to %s", |
181 | output_i, oc->background); | 181 | output_i, oc->background); |
182 | 182 | ||
183 | size_t bufsize = 12; | 183 | size_t len = snprintf(NULL, 0, "%s %d %s %s", |
184 | char output_id[bufsize]; | 184 | config->swaybg_command ? config->swaybg_command : "swaybg", |
185 | snprintf(output_id, bufsize, "%d", output_i); | 185 | output_i, oc->background, oc->background_option); |
186 | output_id[bufsize-1] = 0; | 186 | char *command = malloc(len + 1); |
187 | 187 | if (!command) { | |
188 | char *const cmd[] = { | 188 | wlr_log(L_DEBUG, "Unable to allocate swaybg command"); |
189 | "swaybg", | 189 | return; |
190 | output_id, | 190 | } |
191 | oc->background, | 191 | snprintf(command, len + 1, "%s %d %s %s", |
192 | oc->background_option, | 192 | config->swaybg_command ? config->swaybg_command : "swaybg", |
193 | NULL, | 193 | output_i, oc->background, oc->background_option); |
194 | }; | 194 | wlr_log(L_DEBUG, "-> %s", command); |
195 | 195 | ||
196 | char *const cmd[] = { "sh", "-c", command, NULL }; | ||
196 | output->sway_output->bg_pid = fork(); | 197 | output->sway_output->bg_pid = fork(); |
197 | if (output->sway_output->bg_pid == 0) { | 198 | if (output->sway_output->bg_pid == 0) { |
198 | execvp(cmd[0], cmd); | 199 | execvp(cmd[0], cmd); |