Emdwmexiste uma maneira de eliminar todas as janelas com uma tag específica? O exemplo gostaria de eliminar todas as janelas marcadas com 2.
Isso simularia o recurso kill workspace que está disponível em muitos outros gerenciadores de janelas lado a lado.
Responder1
O Dwm não possui essa funcionalidade por padrão.
Você pode criar um arquivo chamado wipetag.c
e adicionar o seguinte:
static void wipetag(const Arg *arg);
void wipetag(const Arg *arg) {
Client *c;
for (c = selmon->clients; c; c = c->next) {
if (c->tags & 1 << arg->i) {
if (!sendevent(c, wmatom[WMDelete])) {
XGrabServer(dpy);
XSetErrorHandler(xerrordummy);
XSetCloseDownMode(dpy, DestroyAll);
XKillClient(dpy, c->win);
XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy);
}
}
}
}
Inclua o arquivo em config.h
:
#include "wipetag.c"
Então você pode adicionar um atalho que chama a wipetag
função:
static Key keys[] = {
{ Mod1Mask|ShiftMask, XK_1, wipetag, {.i = 0} },
Adicionar o argumento .i = 0
apagará a primeira tag, .i = 1
a segunda e assim por diante.