From d5d8ac227b361f0270b01f83b107ba78c209f3cc Mon Sep 17 00:00:00 2001 From: Malfurious Date: Mon, 22 Jun 2020 00:39:34 -0400 Subject: patch: swallow This patch adds "window swallowing" to dwm as known from Plan 9's windowing system rio. Clients marked with isterminal in config.h swallow a window opened by any child process, e.g. running xclock in a terminal. Closing the xclock window restores the terminal window in the current position. This patch helps users spawning a lot of graphical programs from their command line by avoiding cluttering the screen with many unusable terminals. Being deep down in a directory hierarchy just does not make the use of dmenu feasible. Dependencies * libxcb * Xlib-libxcb * xcb-res These dependencies are needed due to the use of the latest revision of the X Resource Extension which is unsupported in vanilla Xlib. Notes: * The window swallowing functionality requires dwm to walk the process tree, which is an inherently OS-specific task. Only Linux and FreeBSD are supported at this time. Please contact one of the authors if you would like to help expand the list of supported operating systems. * Only terminals created by local processes can swallow windows, and only windows created by local processes can be swallowed. --- config.def.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'config.def.h') diff --git a/config.def.h b/config.def.h index 35d3986..9eb82e5 100644 --- a/config.def.h +++ b/config.def.h @@ -35,10 +35,11 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ - /* class instance title tags mask isfloating monitor scratchpad exec */ - { "st", "sp-shell", NULL, SPTAG(0), 1, -1, NULL }, - { "st", "sp-pythn", NULL, SPTAG(1), 1, -1, "ipython3" }, - { "st", "sp-mixer", NULL, SPTAG(2), 1, -1, "alsamixer" }, + /* class instance title tags mask isfloating isterminal noswallow monitor scratchpad exec */ + { "st", "sp-shell", NULL, SPTAG(0), 1, 1, 1, -1, NULL }, + { "st", "sp-pythn", NULL, SPTAG(1), 1, 1, 1, -1, "ipython3" }, + { "st", "sp-mixer", NULL, SPTAG(2), 1, 1, 1, -1, "alsamixer" }, + { "st", NULL, NULL, 0, 0, 1, 1, -1, NULL }, }; /* layout(s) */ -- cgit v1.2.3