/* terminal + args */
char *spawn_term[] = { "xterm", NULL };
char *spawn_screenshot[] = { "screenshot.sh", NULL, NULL };
-char *spawn_menu[] = { "dmenu_run", "-fn", NULL,
- "-nb", NULL, "-nf", NULL, "-sb", NULL, "-sf", NULL, NULL };
+char *spawn_menu[] = { "dmenu_run", "-fn", NULL, "-nb", NULL,
+ "-nf", NULL, "-sb", NULL, "-sf", NULL, NULL };
#define SWM_MENU_FN (2)
#define SWM_MENU_NB (4)
spawn(struct swm_region *r, union arg *args)
{
char *ret;
+ int si;
DNPRINTF(SWM_D_MISC, "spawn: %s\n", args->argv[0]);
/*
free(ret);
}
setsid();
+ /* kill stdin, mplayer, ssh-add etc. need that */
+ si = open("/dev/null", O_RDONLY, 0);
+ if (si == -1)
+ err(1, "open /dev/null");
+ if (dup2(si, 0) == -1)
+ err(1, "dup2 /dev/null");
execvp(args->argv[0], args->argv);
fprintf(stderr, "execvp failed\n");
perror(" failed");
win->s = r->s; /* this never changes */
TAILQ_INSERT_TAIL(&ws->winlist, win, entry);
- /* make new win focused */
- focus_win(win);
-
XGetTransientForHint(display, win->id, &trans);
if (trans) {
win->transient = trans;
set_win_state(win, NormalState);
+ /* make new win focused */
+ focus_win(win);
+
+
return (win);
}