~ruther/dwl

bc9049a11b9bb667e2161d8e237ca01b3d0d98f1 — Devin J. Pohly 5 years ago c82c000
add spawn and termcmd
2 files changed, 17 insertions(+), 2 deletions(-)

M config.h
M dwl.c
M config.h => config.h +6 -2
@@ 8,9 8,13 @@ static const struct xkb_rule_names xkb_rules = {

#define MODKEY WLR_MODIFIER_ALT

/* commands */
static const char *termcmd[]  = { "kitty", "-o", "linux_display_server=wayland", NULL };

static const Key keys[] = {
	{ MODKEY, XKB_KEY_Escape, quit,      {0} },
	{ MODKEY, XKB_KEY_F1,     focusnext, {0} },
	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn,     {.v = termcmd } },
	{ MODKEY,                    XKB_KEY_Escape, quit,      {0} },
	{ MODKEY,                    XKB_KEY_F1,     focusnext, {0} },
};

static const Button buttons[] = {

M dwl.c => dwl.c +11 -0
@@ 125,6 125,7 @@ static void focusnext(struct dwl_server *, const Arg *);
static void movemouse(struct dwl_server *, const Arg *);
static void quit(struct dwl_server *, const Arg *);
static void resizemouse(struct dwl_server *, const Arg *);
static void spawn(struct dwl_server *, const Arg *);

#include "config.h"



@@ 187,6 188,16 @@ static void quit(struct dwl_server *server, const Arg *unused) {
	wl_display_terminate(server->wl_display);
}

static void spawn(struct dwl_server *server, const Arg *arg) {
	if (fork() == 0) {
		setsid();
		execvp(((char **)arg->v)[0], (char **)arg->v);
		fprintf(stderr, "dwl: execvp %s", ((char **)arg->v)[0]);
		perror(" failed");
		exit(EXIT_FAILURE);
	}
}

static void focusnext(struct dwl_server *server, const Arg *unused) {
	/* Cycle to the next view */
	if (wl_list_length(&server->views) < 2) {

Do not follow this link