X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/272e15c4b7bdeeb258caadb7c62e70c49c12b16d..dfd84f9bf3b9d949412a73bc62a43109b340d395:/cmd.c diff --git a/cmd.c b/cmd.c index 8244540..baa3ae9 100644 --- a/cmd.c +++ b/cmd.c @@ -5,16 +5,48 @@ #include "wm.h" #include +#include void -run(char *arg) +run(void *aux) { - spawn(dpy, arg); + spawn(dpy, aux); } void -quit(char *arg) +quit(void *aux) { - fputs("quit\n", stderr); running = False; } + +void +sel(void *aux) +{ + const char *arg = aux; + Client *c = NULL; + + if(!arg || !stack) + return; + if(!strncmp(arg, "next", 5)) + c = stack->snext ? stack->snext : stack; + else if(!strncmp(arg, "prev", 5)) + for(c = stack; c && c->snext; c = c->snext); + if(!c) + c = stack; + raise(c); + focus(c); +} + +void +kill(void *aux) +{ + Client *c = stack; + + if(!c) + return; + if(c->proto & WM_PROTOCOL_DELWIN) + send_message(c->win, wm_atom[WMProtocols], wm_atom[WMDelete]); + else + XKillClient(dpy, c->win); +} +