dwm - ラベルのすべてのウィンドウを終了する

dwm - ラベルのすべてのウィンドウを終了する

存在するデータ管理特定のラベルを持つすべてのウィンドウを終了する方法はありますか?この例では、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 = 12番目のタグなどが消去されます。

おすすめ記事