diff options
| author | stkhan <personal@slickd.xyz> | 2023-03-19 14:03:09 -0500 |
|---|---|---|
| committer | stkhan <personal@slickd.xyz> | 2023-03-19 14:03:09 -0500 |
| commit | 7eef34f34b3802a81dc984effcd3977981b0ad80 (patch) | |
| tree | c1577a2c045df4cbf5b180e91424f4423548ada5 /wm/dwm-6.4/dwm.c | |
| parent | 303f609abfd668022dbe799e5979f64396ca7c20 (diff) | |
Add restart patch and change redshift cmd
Diffstat (limited to 'wm/dwm-6.4/dwm.c')
| -rw-r--r-- | wm/dwm-6.4/dwm.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/wm/dwm-6.4/dwm.c b/wm/dwm-6.4/dwm.c index 5b918cd..e184613 100644 --- a/wm/dwm-6.4/dwm.c +++ b/wm/dwm-6.4/dwm.c @@ -228,6 +228,8 @@ static void setup(void); static void seturgent(Client *c, int urg); static void showhide(Client *c); static void sigchld(int unused); +static void sighup(int unused); +static void sigterm(int unused); static void spawn(const Arg *arg); static void tag(const Arg *arg); static void tagmon(const Arg *arg); @@ -292,6 +294,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { [UnmapNotify] = unmapnotify }; static Atom wmatom[WMLast], netatom[NetLast]; +static int restart = 0; static int running = 1; static Cur *cursor[CurLast]; static Clr **scheme; @@ -1453,6 +1456,7 @@ quit(const Arg *arg) } } + if(arg->i) restart = 1; running = 0; } @@ -1741,6 +1745,9 @@ setup(void) /* clean up any zombies immediately */ sigchld(0); + signal(SIGHUP, sighup); + signal(SIGTERM, sigterm); + /* init screen */ screen = DefaultScreen(dpy); sw = DisplayWidth(dpy, screen); @@ -1860,6 +1867,20 @@ sigchld(int unused) } void +sighup(int unused) +{ + Arg a = {.i = 1}; + quit(&a); +} + +void +sigterm(int unused) +{ + Arg a = {.i = 0}; + quit(&a); +} + +void spawn(const Arg *arg) { if (fork() == 0) { @@ -2542,6 +2563,7 @@ main(int argc, char *argv[]) #endif /* __OpenBSD__ */ scan(); run(); + if(restart) execvp(argv[0], argv); cleanup(); XCloseDisplay(dpy); return EXIT_SUCCESS; |