Вдвместь ли способ убить все окна с определенным тегом? Пример: хотелось бы убить все окна с тегом 2.
Это имитирует функцию закрытия рабочего пространства, доступную во многих других оконных менеджерах.
решение1
По умолчанию Dwm не имеет такой функциональности.
Вы можете создать файл с именем wipetag.c
и добавить следующее:
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);
}
}
}
}
Включить файл в config.h
:
#include "wipetag.c"
Затем вы можете добавить ярлык, который вызывает wipetag
функцию:
static Key keys[] = {
{ Mod1Mask|ShiftMask, XK_1, wipetag, {.i = 0} },
Добавление аргумента .i = 0
сотрет первый тег, .i = 1
второй и т. д.