ev_io_start(main_loop, ipc_io);
}
- /* Also handle the UNIX domain sockets passed via socket activation */
+ /* Also handle the UNIX domain sockets passed via socket activation. The
+ * parameter 1 means "remove the environment variables", we don’t want to
+ * pass these to child processes. */
int fds = sd_listen_fds(1);
if (fds < 0)
ELOG("socket activation: Error in sd_listen_fds\n");
Barconfig *barconfig;
TAILQ_FOREACH(barconfig, &barconfigs, configs) {
char *command = NULL;
- sasprintf(&command, "i3bar --bar_id=%s --socket=\"%s\"",
- barconfig->id, current_socketpath);
+ sasprintf(&command, "%s --bar_id=%s --socket=\"%s\"",
+ barconfig->i3bar_command ? barconfig->i3bar_command : "i3bar",
+ barconfig->id, current_socketpath);
LOG("Starting bar process: %s\n", command);
start_application(command, true);
free(command);