/* terminal + args */
char *spawn_term[] = { "xterm", NULL };
-char *spawn_screenshot[] = { "scrot", NULL, NULL }; /* XXX get from conf */
+char *spawn_screenshot[] = { "screenshot.sh", NULL, NULL }; /* XXX get from conf */
char *spawn_menu[] = { "dmenu_run", "-fn", NULL,
"-nb", NULL, "-nf", NULL, "-sb", NULL, "-sf", NULL, NULL };
void
spawn(struct swm_region *r, union arg *args)
{
+ char *ret;
+
DNPRINTF(SWM_D_MISC, "spawn: %s\n", args->argv[0]);
/*
* The double-fork construct avoids zombie processes and keeps the code
*/
if (fork() == 0) {
if (fork() == 0) {
- char *ret;
if (display)
close(ConnectionNumber(display));
setenv("LD_PRELOAD", SWM_LIB, 1);
- if (asprintf(&ret, "%d", r->ws->idx))
+ if (asprintf(&ret, "%d", r->ws->idx)) {
setenv("_SWM_WS", ret, 1);
- if (asprintf(&ret, "%d", getpid()))
+ free(ret);
+ }
+ if (asprintf(&ret, "%d", getpid())) {
setenv("_SWM_PID", ret, 1);
+ free(ret);
+ }
setsid();
execvp(args->argv[0], args->argv);
fprintf(stderr, "execvp failed\n");
int i, j, w_inc, h_inc, w_base, h_base;
int hrh, extra, h_slice, last_h = 0;
int split, colno, winno, mwin, msize, mscale;
+ int remain, missing, v_slice;;
unsigned int mask;
DNPRINTF(SWM_D_STACK, "stack_master: workspace: %d\n rot=%s flip=%s",
h_slice = r_g.h / SWM_H_SLICE;
if (mwin && winno > mwin) {
- int v_slice = r_g.w / SWM_V_SLICE;
+ v_slice = r_g.w / SWM_V_SLICE;
split = mwin;
colno = split;
if (w_inc > 1 && w_inc < v_slice) {
/* adjust for window's requested size increment */
- int remain = (win_g.w - w_base) % w_inc;
- int missing = w_inc - remain;
+ remain = (win_g.w - w_base) % w_inc;
+ missing = w_inc - remain;
if (missing <= extra || j == 0) {
extra -= missing;
win_g.h = hrh + extra;
} else if (h_inc > 1 && h_inc < h_slice) {
/* adjust for window's requested size increment */
- int remain = (win_g.h - h_base) % h_inc;
- int missing = h_inc - remain;
+ remain = (win_g.h - h_base) % h_inc;
+ missing = h_inc - remain;
if (missing <= extra || j == 0) {
extra -= missing;
switch (args->id) {
case SWM_ARG_ID_SS_ALL:
- spawn_screenshot[1] = "-m";
+ spawn_screenshot[1] = "full";
break;
case SWM_ARG_ID_SS_WINDOW:
- spawn_screenshot[1] = "-s"; /* XXX doesn't work with scrot */
+ spawn_screenshot[1] = "window";
break;
default:
return;