dwl

My patch set and modifications to dwl
git clone git://git.ethandl.dev/dwl
Log | Files | Refs | README | LICENSE

commit bd2f7fbb4082d947ec2738cd31d403e9f0c10f50
parent 823cefd2920085a0f74899fb679020005a1b6e0b
Author: Devin J. Pohly <djpohly@gmail.com>
Date:   Wed, 26 May 2021 23:30:49 -0500

exit cleanly on INT/TERM

Diffstat:
Mdwl.c | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/dwl.c b/dwl.c @@ -259,6 +259,7 @@ static void pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy, uint32_t time); static void printstatus(void); static void quit(const Arg *arg); +static void quitsignal(int signo); static void render(struct wlr_surface *surface, int sx, int sy, void *data); static void renderclients(Monitor *m, struct timespec *now); static void renderlayer(struct wl_list *layer_surfaces, struct timespec *now); @@ -1579,6 +1580,12 @@ quit(const Arg *arg) } void +quitsignal(int signo) +{ + quit(NULL); +} + +void render(struct wlr_surface *surface, int sx, int sy, void *data) { /* This function is called for every surface that needs to be rendered. */ @@ -1965,8 +1972,10 @@ setup(void) * clients from the Unix socket, manging Wayland globals, and so on. */ dpy = wl_display_create(); - /* clean up child processes immediately */ + /* Set up signal handlers */ sigchld(0); + signal(SIGINT, quitsignal); + signal(SIGTERM, quitsignal); /* The backend is a wlroots feature which abstracts the underlying input and * output hardware. The autocreate option will choose the most suitable