Endwm¿Hay alguna manera de cerrar todas las ventanas con una etiqueta en particular? Al ejemplo le gustaría eliminar todas las ventanas etiquetadas con 2.
Esto simularía la función de eliminación del espacio de trabajo que está disponible en muchos otros administradores de ventanas en mosaico.
Respuesta1
Dwm no tiene esa funcionalidad de forma predeterminada.
Puede crear un archivo llamado wipetag.c
y agregar lo siguiente:
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);
}
}
}
}
Incluya el archivo en config.h
:
#include "wipetag.c"
Luego puedes agregar un atajo que llame a la wipetag
función:
static Key keys[] = {
{ Mod1Mask|ShiftMask, XK_1, wipetag, {.i = 0} },
Agregar el argumento .i = 0
borrará la primera etiqueta, .i = 1
la segunda y así sucesivamente.