在資料管理有沒有辦法殺死所有帶有特定標籤的視窗?範例想要殺死所有標記為 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
第二個標籤,依此類推。