if (!parentname)
goto out;
+ /* Some shells, for example zsh, open a pipe in a way which will make the
+ * pipe target the parent process of i3status. If we detect that, we set
+ * the format and we are done. */
+ if (strcasecmp(parentname, "i3bar") == 0)
+ format = "i3bar";
+ else if (strcasecmp(parentname, "dzen2") == 0)
+ format = "dzen2";
+ else if (strcasecmp(parentname, "xmobar") == 0)
+ format = "xmobar";
+
+ if (format)
+ goto out;
+
rewinddir(dir);
while ((entry = readdir(dir)) != NULL) {
/* Check for known destination programs and set format */
char *newfmt = NULL;
if (strcasecmp(name, "i3bar") == 0)
- newfmt = "none";
+ newfmt = "i3bar";
else if (strcasecmp(name, "dzen2") == 0)
newfmt = "dzen2";
else if (strcasecmp(name, "xmobar") == 0)