commit 253efad43758a10ce26a767d4ad42cc5c32f8d0d
parent 7647762bab3b625bba6004de761454a2ae4edc5d
Author: Drew DeVault <sir@cmpwn.com>
Date: Fri, 18 Dec 2015 19:17:56 -0500
Merge pull request #361 from mikkeloscar/i3bar-command
Add support for running swaybar_command
Diffstat:
1 file changed, 26 insertions(+), 9 deletions(-)
diff --git a/sway/config.c b/sway/config.c
@@ -371,18 +371,35 @@ static void invoke_swaybar(swayc_t *output, struct bar_config *bar, int output_i
snprintf(output_id, bufsize, "%d", output_i);
output_id[bufsize-1] = 0;
- char *const cmd[] = {
- "swaybar",
- "-b",
- bar->id,
- output_id,
- NULL,
- };
-
pid_t *pid = malloc(sizeof(pid_t));
*pid = fork();
if (*pid == 0) {
- execvp(cmd[0], cmd);
+ if (!bar->swaybar_command) {
+ char *const cmd[] = {
+ "swaybar",
+ "-b",
+ bar->id,
+ output_id,
+ NULL,
+ };
+
+ execvp(cmd[0], cmd);
+ } else {
+ // run custom swaybar
+ int len = strlen(bar->swaybar_command) + strlen(bar->id) + strlen(output_id) + 6;
+ char *command = malloc(len * sizeof(char));
+ snprintf(command, len, "%s -b %s %s", bar->swaybar_command, bar->id, output_id);
+
+ char *const cmd[] = {
+ "sh",
+ "-c",
+ command,
+ NULL,
+ };
+
+ execvp(cmd[0], cmd);
+ free(command);
+ }
}
// add swaybar pid to output