From b866bf5319068c0977b2f4f7e06e29e59baa83bf Mon Sep 17 00:00:00 2001 From: bakkeby Date: Fri, 24 Jan 2020 10:47:13 +0100 Subject: Adding barpadding patch and moving patches.h to paches.def.h --- .gitignore | 1 + Makefile | 5 +- README.md | 5 + config.def.h | 4 + dwm.c | 125 ++++++++--- patches.def.h | 648 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ patches.h | 643 --------------------------------------------------------- 7 files changed, 756 insertions(+), 675 deletions(-) create mode 100644 patches.def.h delete mode 100644 patches.h diff --git a/.gitignore b/.gitignore index f913c1b..88d2ee6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.o dwm config.h +patches.h diff --git a/Makefile b/Makefile index d1e402b..25258d5 100644 --- a/Makefile +++ b/Makefile @@ -17,11 +17,14 @@ options: .c.o: ${CC} -c ${CFLAGS} $< -${OBJ}: config.h config.mk +${OBJ}: config.h config.mk patches.h config.h: cp config.def.h $@ +patches.h: + cp patches.def.h $@ + dwm: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} diff --git a/README.md b/README.md index 8af73dc..bbce9f2 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t ### Changelog: +2020-01-24 - Added barpadding patch (incl. statusallmons, statuspadding, statuscolors, systray, alpha and extrabar patch compatibility). Moved patches.h to patches.def.h to mimic the config pattern of having default and personal settings. + 2020-01-17 - Added inplacerotate patch 2019-12-15 - Updated dragmfact patch to include fix patch to make it work with multiple monitors @@ -108,6 +110,9 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t - [awesomebar](https://dwm.suckless.org/patches/awesomebar/) - enhanced taskbar that allows focus / hiding / unhiding of windows by clicking on the status bar + - [barpadding](https://dwm.suckless.org/patches/barpadding/) + - adds vertical and horizontal space between the statusbar and the edge of the screen + - [center](https://dwm.suckless.org/patches/center/) - adds an iscentered rule to automatically center clients on the current monitor diff --git a/config.def.h b/config.def.h index bf069d1..86169ff 100644 --- a/config.def.h +++ b/config.def.h @@ -16,6 +16,10 @@ static const int showbar = 0; /* 0 means no bar */ static const int showbar = 1; /* 0 means no bar */ #endif // HOLDBAR_PATCH static const int topbar = 1; /* 0 means bottom bar */ +#if BARPADDING_PATCH +static const int vertpad = 10; /* vertical padding of bar */ +static const int sidepad = 10; /* horizontal padding of bar */ +#endif // BARPADDING_PATCH #if FOCUSONCLICK_PATCH static const int focusonwheel = 0; #endif // FOCUSONCLICK_PATCH diff --git a/dwm.c b/dwm.c index 7667e40..45e0130 100644 --- a/dwm.c +++ b/dwm.c @@ -420,6 +420,10 @@ static int screen; static int sw, sh; /* X display screen geometry width, height */ static int bh, blw = 0; /* bar geometry */ static int lrpad; /* sum of left and right padding for text */ +#if BARPADDING_PATCH +static int vp; /* vertical padding for bar */ +static int sp; /* side padding for bar */ +#endif // BARPADDING_PATCH static int (*xerrorxlib)(Display *, XErrorEvent *); static unsigned int numlockmask = 0; static void (*handler[LASTEvent]) (XEvent *) = { @@ -1052,9 +1056,17 @@ configurenotify(XEvent *e) #endif // FAKEFULLSCREEN_CLIENT_PATCH resizeclient(c, m->mx, m->my, m->mw, m->mh); #endif // !FAKEFULLSCREEN_PATCH + #if BARPADDING_PATCH + XMoveResizeWindow(dpy, m->barwin, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh); + #else XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); + #endif // BARPADDING_PATCH #if EXTRABAR_PATCH + #if BARPADDING_PATCH + XMoveResizeWindow(dpy, m->extrabarwin, m->wx, m->eby - vp, m->ww - 2 * sp, bh); + #else XMoveResizeWindow(dpy, m->extrabarwin, m->wx, m->eby, m->ww, bh); + #endif // BARPADDING_PATCH #endif // EXTRABAR_PATCH } focus(NULL); @@ -1301,7 +1313,7 @@ dirtomon(int dir) void drawbar(Monitor *m) { - int x, w, sw = 0, invert; + int x, w, sw = 0, stw = 0, stp = 0, invert; #if ALTERNATIVE_TAGS_PATCH int wdelta; #endif // ALTERNATIVE_TAGS_PATCH @@ -1311,9 +1323,12 @@ drawbar(Monitor *m) int tw, mw, ew = 0; int n = 0; #endif // FANCYBAR_PATCH, AWESOMEBAR_PATCH - #if SYSTRAY_PATCH - int stw = 0; - #endif // SYSTRAY_PATCH + #if BARPADDING_PATCH + stw = 2 * sp; + #endif // BARPADDING_PATCH + #if STATUSPADDING_PATCH + stp = lrpad / 2; + #endif // STATUSPADDING_PATCH #if !HIDEVACANTTAGS_PATCH #if !ACTIVETAGINDICATORBAR_PATCH int boxs = drw->fonts->h / 9; @@ -1331,7 +1346,11 @@ drawbar(Monitor *m) #if SYSTRAY_PATCH if (showsystray && m == systraytomon(m)) + #if BARPADDING_PATCH + stw = getsystraywidth() + 2 * sp; + #else stw = getsystraywidth(); + #endif // BARPADDING_PATCH #endif // SYSTRAY_PATCH /* draw status first so it can be overdrawn by tags later */ @@ -1353,19 +1372,7 @@ drawbar(Monitor *m) ctmp = *ts; *ts = '\0'; drw_text(drw, m->ww - sw + tx, 0, sw - tx, bh, 0, tp, 0); - #if STATUSPADDING_PATCH - #if SYSTRAY_PATCH - drw_text(drw, m->ww - sw - stw + tx, 0, sw - tx, bh, lrpad / 2, tp, 0); - #else - drw_text(drw, m->ww - sw + tx, 0, sw - tx, bh, lrpad / 2, tp, 0); - #endif // SYSTRAY_PATCH - #else // STATUSPADDING_PATCH - #if SYSTRAY_PATCH - drw_text(drw, m->ww - sw - stw + tx, 0, sw - tx, bh, 0, tp, 0); - #else - drw_text(drw, m->ww - sw + tx, 0, sw - tx, bh, 0, tp, 0); - #endif // SYSTRAY_PATCH - #endif // STATUSPADDING_PATCH + drw_text(drw, m->ww - sw - stw + tx, 0, sw - tx, bh, stp, tp, 0); tx += TEXTW(tp) -lrpad; if (ctmp == '\0') { break; @@ -1375,19 +1382,7 @@ drawbar(Monitor *m) tp = ++ts; } #else // STATUSCOLORS_PATCH - #if STATUSPADDING_PATCH - #if SYSTRAY_PATCH - drw_text(drw, m->ww - sw - stw, 0, sw, bh, lrpad / 2, stext, 0); - #else - drw_text(drw, m->ww - sw, 0, sw, bh, lrpad / 2, stext, 0); - #endif // SYSTRAY_PATCH - #else // STATUSPADDING_PATCH - #if SYSTRAY_PATCH - drw_text(drw, m->ww - sw - stw, 0, sw, bh, 0, stext, 0); - #else - drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0); - #endif // SYSTRAY_PATCH - #endif // STATUSPADDING_PATCH + drw_text(drw, m->ww - sw - stw, 0, sw, bh, stp, stext, 0); #endif // STATUSCOLORS_PATCH #if !STATUSALLMONS_PATCH } @@ -1549,9 +1544,17 @@ drawbar(Monitor *m) #endif // IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH #if CENTEREDWINDOWNAME_PATCH int mid = (m->ww - TEXTW(m->sel->name)) / 2 - x; + #if BARPADDING_PATCH drw_text(drw, x, 0, w, bh, mid, m->sel->name, 0); #else + drw_text(drw, x, 0, w - 2*sp, bh, mid, m->sel->name, 0); + #endif // BARPADDING_PATCH + #else + #if BARPADDING_PATCH + drw_text(drw, x, 0, w - 2*sp, bh, lrpad / 2, m->sel->name, 0); + #else drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); + #endif // BARPADDING_PATCH #endif // CENTEREDWINDOWNAME_PATCH #if IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH XSync(dpy, False); @@ -1565,7 +1568,11 @@ drawbar(Monitor *m) #endif // ACTIVETAGINDICATORBAR_PATCH } else { drw_setscheme(drw, scheme[SchemeNorm]); + #if BARPADDING_PATCH + drw_rect(drw, x, 0, w - 2 * sp, bh, 1, 1); + #else drw_rect(drw, x, 0, w, bh, 1, 1); + #endif // BARPADDING_PATCH } #endif // FANCYBAR_PATCH, AWESOMEBAR_PATCH } @@ -2866,6 +2873,10 @@ setup(void) bh = drw->fonts->h + 2; #endif // STATUSPADDING_PATCH updategeom(); + #if BARPADDING_PATCH + sp = sidepad; + vp = (topbar == 1) ? vertpad : - vertpad; + #endif // BARPADDING_PATCH /* init atoms */ utf8string = XInternAtom(dpy, "UTF8_STRING", False); wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); @@ -2926,6 +2937,9 @@ setup(void) /* init bars */ updatebars(); updatestatus(); + #if BARPADDING_PATCH + updatebarpos(selmon); + #endif // BARPADDING_PATCH /* supporting window for NetWMCheck */ wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0); XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32, @@ -3112,9 +3126,17 @@ togglebar(const Arg *arg) selmon->showbar = !selmon->showbar; #endif // PERTAG_PATCH updatebarpos(selmon); + #if BARPADDING_PATCH + XMoveResizeWindow(dpy, selmon->barwin, selmon->wx + sp, selmon->by + vp, selmon->ww - 2*sp, bh); + #else XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); + #endif // BARPADDING_PATCH #if EXTRABAR_PATCH + #if BARPADDING_PATCH + XMoveResizeWindow(dpy, selmon->extrabarwin, selmon->wx + sp, selmon->eby - vp, selmon->ww - 2*sp, bh); + #else XMoveResizeWindow(dpy, selmon->extrabarwin, selmon->wx, selmon->eby, selmon->ww, bh); + #endif // BARPADDING_PATCH #endif // EXTRABAR_PATCH #if SYSTRAY_PATCH if (showsystray) { @@ -3395,13 +3417,25 @@ updatebars(void) w -= getsystraywidth(); #endif // SYSTRAY_PATCH #if ALPHA_PATCH + #if BARPADDING_PATCH + m->barwin = XCreateWindow(dpy, root, m->wx + sp, m->by + vp, w - 2*sp, bh, 0, depth, + InputOutput, visual, + CWOverrideRedirect|CWBackPixel|CWBorderPixel|CWColormap|CWEventMask, &wa); + #else m->barwin = XCreateWindow(dpy, root, m->wx, m->by, w, bh, 0, depth, InputOutput, visual, CWOverrideRedirect|CWBackPixel|CWBorderPixel|CWColormap|CWEventMask, &wa); + #endif // BARPADDING_PATCH + #else + #if BARPADDING_PATCH + m->barwin = XCreateWindow(dpy, root, m->wx + sp, m->by + vp, w - 2*sp, bh, 0, DefaultDepth(dpy, screen), + CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); #else m->barwin = XCreateWindow(dpy, root, m->wx, m->by, w, bh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); + #endif // BARPADDING_PATCH #endif // ALPHA_PATCH XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor); #if SYSTRAY_PATCH @@ -3414,9 +3448,19 @@ updatebars(void) } if (!m->extrabarwin) { #if ALPHA_PATCH + #if BARPADDING_PATCH + m->extrabarwin = XCreateWindow(dpy, root, m->wx + sp, m->eby - vp, m->ww - 2*sp, bh, 0, depth, + InputOutput, visual, + CWOverrideRedirect|CWBackPixel|CWBorderPixel|CWColormap|CWEventMask, &wa); + #else m->extrabarwin = XCreateWindow(dpy, root, m->wx, m->eby, m->ww, bh, 0, depth, InputOutput, visual, CWOverrideRedirect|CWBackPixel|CWBorderPixel|CWColormap|CWEventMask, &wa); + #endif // BARPADDING_PATCH + #elif BARPADDING_PATCH + m->extrabarwin = XCreateWindow(dpy, root, m->wx + sp, m->eby - vp, m->ww - 2*sp, bh, 0, DefaultDepth(dpy, screen), + CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); #else m->extrabarwin = XCreateWindow(dpy, root, m->wx, m->eby, m->ww, bh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), @@ -3437,7 +3481,18 @@ updatebarpos(Monitor *m) m->wy = m->my; m->wh = m->mh; #if EXTRABAR_PATCH - m->wh -= bh * m->showbar * 2; + #if BARPADDING_PATCH + m->wh = m->wh - vertpad * m->showbar * 2 - bh * m->showbar * 2; + m->wy = m->showbar ? m->wy + bh + vertpad: m->wy; + if (m->showbar) { + m->by = m->topbar ? m->wy - bh - vertpad: m->wy + m->wh + vertpad; + m->eby = m->topbar ? m->wy + m->wh + vertpad: m->wy - bh - vertpad; + } else { + m->by = -bh - vertpad; + m->eby = -bh - vertpad; + } + #else + m->wh = m->wh - bh * m->showbar * 2; m->wy = m->showbar ? m->wy + bh : m->wy; if (m->showbar) { m->by = m->topbar ? m->wy - bh : m->wy + m->wh; @@ -3446,6 +3501,14 @@ updatebarpos(Monitor *m) m->by = -bh; m->eby = -bh; } + #endif // BARPADDING_PATCH + #elif BARPADDING_PATCH + if (m->showbar) { + m->wh = m->wh - vertpad - bh; + m->by = m->topbar ? m->wy : m->wy + m->wh + vertpad; + m->wy = m->topbar ? m->wy + bh + vp : m->wy; + } else + m->by = -bh - vp; #else if (m->showbar) { m->wh -= bh; diff --git a/patches.def.h b/patches.def.h new file mode 100644 index 0000000..292763c --- /dev/null +++ b/patches.def.h @@ -0,0 +1,648 @@ +/* + * This file contains patch control flags. + * + * In principle you should be able to mix and match any patches + * you may want. In cases where patches are logically incompatible + * one patch may take precedence over the other as noted in the + * relevant descriptions. + * + * Although layouts typically come as patches they are differentiated + * here for grouping purposes. + */ + +/* Patches */ + +/* This patch changes the rectangle indicating if a tag is used by a client into a bar + * above the tag name for better visibility. + * https://dwm.suckless.org/patches/activetagindicatorbar/ + */ +#define ACTIVETAGINDICATORBAR_PATCH 0 + +/* The alpha patch adds transparency for the status bar. + * https://dwm.suckless.org/patches/alpha/ + */ +#define ALPHA_PATCH 0 + +/* This patch introduces alternative tags which can be switched on the fly for the + * sole purpose of providing visual aid. + * https://dwm.suckless.org/patches/alternativetags/ + */ +#define ALTERNATIVE_TAGS_PATCH 0 + +/* This patch prevents the focus to drift from the active fullscreen client when + * using focusstack(). + * https://dwm.suckless.org/patches/alwaysfullscreen/ + */ +#define ALWAYSFULLSCREEN_PATCH 0 + +/* This patch adds new clients above the selected client, instead of always + * becoming the new master. This behaviour is known from Xmonad. + * This patch takes precedence over ATTACHASIDE_PATCH. + * https://dwm.suckless.org/patches/attachabove/ + */ +#define ATTACHABOVE_PATCH 0 + +/* This patch adds new clients on top of the stack. + * This patch takes precedence over ATTACHBELOW_PATCH. + * https://dwm.suckless.org/patches/attachaside/ + */ +#define ATTACHASIDE_PATCH 0 + +/* This patch adds new clients below the selected client. + * This patch takes precedence over ATTACHBOTTOM_PATCH. + * https://dwm.suckless.org/patches/attachbelow/ + */ +#define ATTACHBELOW_PATCH 0 + +/* This patch adds new clients at the bottom of the stack. + * https://dwm.suckless.org/patches/attachbottom/ + */ +#define ATTACHBOTTOM_PATCH 0 + +/* This patch will make dwm run "~/.config/dwm/autostart_blocking.sh" and + * "~/.config/dwm/autostart.sh &" before entering the handler loop. One or + * both of these files can be ommited. Note the path inside .config rather + * than the original ~/.dwm folder. + * https://dwm.suckless.org/patches/autostart/ + */ +#define AUTOSTART_PATCH 0 + +/* By default, windows that are not visible when requesting a resize/move will not + * get resized/moved. With this patch, they will. + * https://dwm.suckless.org/patches/autoresize/ + */ +#define AUTORESIZE_PATCH 0 + +/* Enhanced taskbar that shows the titles of all visible windows in the status bar + * and allows focus / hiding / unhiding of windows by clicking on the status bar. + * Awesomebar takes precedence over fancybar. + * https://dwm.suckless.org/patches/awesomebar/ + */ +#define AWESOMEBAR_PATCH 0 + +/* This patch adds vertical and horizontal space between the statusbar and the edge of the screen. + * https://dwm.suckless.org/patches/barpadding/ + */ +#define BARPADDING_PATCH 0 + +/* This patch adds an iscentered rule to automatically center clients on the current monitor. + * This patch takes precedence over centeredwindowname and fancybar patches. + * https://dwm.suckless.org/patches/center/ + */ +#define CENTER_PATCH 0 + +/* This patch centers the WM_NAME of the currently selected window on the status bar. + * Both fancybar and awesomebar patches take precedence over this patch. + * https://dwm.suckless.org/patches/centeredwindowname/ + */ +#define CENTEREDWINDOWNAME_PATCH 0 + +/* This patch provides the ability to assign different weights to clients in their + * respective stack in tiled layout. + * https://dwm.suckless.org/patches/cfacts/ + */ +#define CFACTS_PATCH 0 + +/* This patch allows color attributes to be set through the command line. + * https://dwm.suckless.org/patches/cmdcustomize/ + */ +#define CMDCUSTOMIZE_PATCH 0 + +/* This patch tweaks the tagging interface so that you can select multiple tags for tag + * or view by pressing all the right keys as a combo. For example to view tags 1 and 3, + * hold MOD and then press and hold 1 and 3 together. + * https://dwm.suckless.org/patches/combo/ + */ +#define COMBO_PATCH 0 + +/* The cyclelayouts patch lets you cycle through all your layouts. + * https://dwm.suckless.org/patches/cyclelayouts/ + */ +#define CYCLELAYOUTS_PATCH 0 + +/* Updates the position of dmenu to match that of the bar. I.e. if topbar is 0 then dmenu + * will appear at the bottom and if 1 then dmenu will appear at the top. + * https://dwm.suckless.org/patches/dmenumatchtop + */ +#define DMENUMATCHTOP_PATCH 0 + +/* This patch lets you resize the split in the tile layout (i.e. modify mfact) by holding + * the modkey and dragging the mouse. + * This patch can be a bit wonky with other layouts, but generally works. + * https://dwm.suckless.org/patches/dragmfact/ + */ +#define DRAGMFACT_PATCH 0 + +/* Simple dwmc client using a fork of fsignal to communicate with dwm. + * To use this either copy the patch/dwmc shell script to somewhere in your path or + * uncomment the following line in Makefile: #cp -f patch/dwmc ${DESTDIR}${PREFIX}/bin + * http://dwm.suckless.org/patches/dwmc/ + */ +#define DWMC_PATCH 0 + +/* This patch allows no tag at all to be selected. The result is that dwm will start with + * no tag selected and when you start a client with no tag rule and no tag selected then + * it will be opened on the first tag. + * https://dwm.suckless.org/patches/emptyview/ + */ +#define EMPTYVIEW_PATCH 0 + +/* Adds EWMH support for _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES + * and _NET_DESKTOP_VIEWPORT, which allows for compatibility with other bars and programs + * that request workspace information. For example polybar's xworkspaces module. + * https://dwm.suckless.org/patches/ewmhtags/ + */ +#define EWMHTAGS_PATCH 0 + +/* This patch allows the user to change size and placement of floating windows using only the + * keyboard. It also allows for temporary vertical and horizontal extension of windows similar + * to other WMs fill command. + * https://dwm.suckless.org/patches/exresize/ + */ +#define EXRESIZE_PATCH 0 + +/* This patch will enable an extra status bar in dwm in a similar manner to the dualstatus + * patch. If the primary status is at the top via topbar then the extra status bar will be + * placed at the bottom and vice versa. + * https://dwm.suckless.org/patches/extrabar/ + */ +#define EXTRABAR_PATCH 0 + +/* Only allow clients to "fullscreen" into the space currently given to them. + * As an example, this will allow you to view a fullscreen video in your browser on + * one half of the screen, while having the other half available for other tasks. + * https://dwm.suckless.org/patches/fakefullscreen/ + */ +#define FAKEFULLSCREEN_PATCH 0 + +/* Similarly to the fakefullscreen patch this patch only allows clients to "fullscreen" into + * the space currently given to them. + * The "twist" with this patch is that fake fullscreen can be toggled on a per client basis + * rather than applying to all clients globally. + */ +#define FAKEFULLSCREEN_CLIENT_PATCH 0 + +/* This patch shows the titles of all visible windows in the status bar + * (as opposed to showing only the selected one). + * Awesomebar takes precedence over fancybar. Fancybar takes precedence over + * the centeredwindowname patch. + * https://dwm.suckless.org/patches/fancybar/ + */ +#define FANCYBAR_PATCH 0 + +/* This patch provides the ability to focus the tag on the immediate left or right of the + * currently focused tag. It also allows to send the focused window either on the left or + * the right tag. + * http://dwm.suckless.org/patches/focusadjacenttag/ + */ +#define FOCUSADJACENTTAG_PATCH 0 + +/* Switch focus only by mouse click and not sloppy (focus follows mouse pointer). + * https://dwm.suckless.org/patches/focusonclick/ + */ +#define FOCUSONCLICK_PATCH 0 + +/* Selects the next window having the urgent flag regardless of the tag it is on. + * The urgent flag can be artificially set with the following xdotool command on any window: + * xdotool selectwindow -- set_window --urgency 1 + * https://dwm.suckless.org/patches/focusurgent/ + */ +#define FOCUSURGENT_PATCH 0 + +/* This patch allows a different border color to be chosen for floating windows. + * https://dwm.suckless.org/patches/float_border_color/ + */ +#define FLOAT_BORDER_COLOR_PATCH 0 + +/* By default, dwm responds to _NET_ACTIVE_WINDOW client messages by setting + * the urgency bit on the named window. This patch activates the window instead. + * https://dwm.suckless.org/patches/focusonnetactive/ + */ +#define FOCUSONNETACTIVE_PATCH 0 + +/* Applies the monocle layout with the focused client on top and hides the bar. When pressed + * again it shows the bar and restores the layout that was active before going fullscreen. + * NB: This patch assumes that the third layout is monocle and that the bar is shown. + * https://dwm.suckless.org/patches/fullscreen/ + */ +#define FULLSCREEN_PATCH 0 + +/* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar. + * https://dwm.suckless.org/patches/hide_vacant_tags/ + */ +#define HIDEVACANTTAGS_PATCH 0 + +/* With this patch dwm's built-in status bar is only shown when HOLDKEY is pressed + * and the bar will now overlay the display. + * http://dwm.suckless.org/patches/holdbar/ + */ +#define HOLDBAR_PATCH 0 + +/* This patch provides a keybinding to rotate all clients in the currently selected + * area (master or stack) without affecting the other area. + * https://dwm.suckless.org/patches/inplacerotate/ + */ +#define INPLACEROTATE_PATCH 0 + +/* Adds rule option for clients to avoid accidental termination by killclient for sticky windows. + * https://dwm.suckless.org/patches/ispermanent/ + */ +#define ISPERMANENT_PATCH 0 + +/* Sometimes dwm crashes when it cannot render some glyphs in window titles (usually emoji). + * This patch is essentially a hack to ignore any errors when drawing text on the status bar. + * https://groups.google.com/forum/m/#!topic/wmii/7bncCahYIww + * https://docs.google.com/viewer?a=v&pid=forums&srcid=MDAwODA2MTg0MDQyMjE0OTgzMzMBMDQ3ODQzODkyMTU3NTAyMTMxNTYBX2RUMVNtOUtDQUFKATAuMQEBdjI&authuser=0 + */ +#define IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH 0 + +/* This patch adds a keybinding to kills all visible clients that are not selected. + * https://dwm.suckless.org/patches/killunsel/ + */ +#define KILLUNSEL_PATCH 0 + +/* Moves the layout symbol in the status bar to the left hand side. + * http://dwm.suckless.org/patches/leftlayout/ + */ +#define LEFTLAYOUT_PATCH 0 + +/* By default in dwm it is possible to make an application fullscreen, then use + * the focusstack keybindings to focus on other windows beneath the current window. + * It is also possible to spawn new windows (e.g. a terminal) that end up getting + * focus while the previous window remains in fullscreen. This patch ensures that + * in such scenarios the previous window loses fullscreen. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-losefullscreen-6.2.diff + */ +#define LOSEFULLSCREEN_PATCH 0 + +/* This patch adds helper functions for maximizing, horizontally and vertically, floating + * windows using keybindings. + * https://dwm.suckless.org/patches/maximize/ + */ +#define MAXIMIZE_PATCH 0 + +/* Control Music Player Daemon via keybinds. + * This patch depends on an additional library lmdpclient so if you want to enable this + * then you will also have to append -lmpdclient to the LIBS configuration in config.mk. + * A placeholder has been added there for reference. + * https://dwm.suckless.org/patches/mpdcontrol/ + */ +#define MDPCONTROL_PATCH 0 + +/* Adds rules per monitor, e.g. have default layouts per monitor. + * The use case for this is if the second monitor is vertical (i.e. rotated) then + * you may want to use a different default layout for this monitor than what is + * used for the main monitor. E.g. normal vertical split for main monitor and + * horizontal split for the second. + */ +#define MONITOR_RULES_PATCH 0 + +/* Always display the the monocle-symbol as defined in config.h if the monocle-layout + * is activated. Do not display the number of open clients in the current tag. + * https://dwm.suckless.org/patches/monoclesymbol/ + */ +#define MONOCLESYMBOL_PATCH 0 + +/* This patch allows you to move clients around in the stack and swap them with the master. + * https://dwm.suckless.org/patches/movestack/ + */ +#define MOVESTACK_PATCH 0 + +/* Removes the border when there is only one window visible. + * https://dwm.suckless.org/patches/noborder/ + */ +#define NOBORDER_PATCH 0 + +/* Enable modifying or removing dmenu in config.def.h which resulted previously in a + * compilation error because two lines of code hardcode dmenu into dwm. + * https://dwm.suckless.org/patches/nodmenu/ + */ +#define NODMENU_PATCH 0 + +/* This patch makes it so dwm will only exit via quit() if no windows are open. + * This is to prevent you accidentally losing all your work. + * https://dwm.suckless.org/patches/onlyquitonempty/ + */ +#define ONLYQUITONEMPTY_PATCH 0 + +/* The pertag patch adds nmaster, mfacts and layouts per tag rather than per + * monitor (default). + * https://dwm.suckless.org/patches/pertag/ + */ +#define PERTAG_PATCH 0 + +/* This controls whether or not to also store bar position on a per + * tag basis, or leave it as one bar per monitor. + */ +#define PERTAGBAR_PATCH 0 + +/* This patch provides a way to move clients up and down inside the client list. + * https://dwm.suckless.org/patches/push/ + */ +#define PUSH_PATCH 0 + +/* This patch provides a way to move clients up and down inside the client list, + * but does not push up or down into the master area (except that it does not take + * nmaster into account). + * This takes precedence over the push patch above. + * https://dwm.suckless.org/patches/push/ + */ +#define PUSH_NO_MASTER_PATCH 0 + +/* By default, windows only resize from the bottom right corner. With this + * patch the mouse is warped to the nearest corner and you resize from there. + * https://dwm.suckless.org/patches/resizecorners/ + */ +#define RESIZECORNERS_PATCH 0 + +/* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid. + * Additionally dwm can quit cleanly by using kill -TERM dwmpid. + * https://dwm.suckless.org/patches/restartsig/ + */ +#define RESTARTSIG_PATCH 0 + +/* This patch let's you rotate through the stack using keyboard shortcuts. + * https://dwm.suckless.org/patches/rotatestack/ + */ +#define ROTATESTACK_PATCH 0 + +/* This patch saves size and position of every floating window before it is forced + * into tiled mode. If the window is made floating again then the old dimensions + * will be restored. + * https://dwm.suckless.org/patches/save_floats/ + */ +#define SAVEFLOATS_PATCH 0 + +/* The scratchpad patch allows you to spawn or restore a floating terminal window. + * It is typically useful when one need to do some short typing. + * https://dwm.suckless.org/patches/scratchpad/ + */ +#define SCRATCHPAD_PATCH 0 + +/* Allows restarting dwm without the dependency of an external script. + * https://dwm.suckless.org/patches/selfrestart/ + */ +#define SELFRESTART_PATCH 0 + +/* This patch allows border pixels to be changed during runtime. + * https://dwm.suckless.org/patches/setborderpx/ + */ +#define SETBORDERPX_PATCH 0 + +/* In a multi-head setup monitor 0 is by default the primary screen, with the left and right + * screen being monitor 1 and 2 respectively. This patch sorts screens left to right (or + * top to bottom in a vertical layout) which aims to address some inconsistencies when it + * comes to focusmon, tagmon and similar functionality. + * https://www.mail-archive.com/hackers@suckless.org/msg09400.html + */ +#define SORTSCREENS_PATCH 0 + +/* Spawns programs from currently focused client's working directory. + * https://dwm.suckless.org/patches/spawn_cwd/ + */ +#define SPAWNCMD_PATCH 0 + +/* This patch draws and updates the statusbar on all monitors. + * https://dwm.suckless.org/patches/statusallmons/ + */ +#define STATUSALLMONS_PATCH 0 + +/* This patch enables colored text in the status bar. It changes the way colors are defined + * in config.h allowing multiple color combinations for use in the status script. + * https://dwm.suckless.org/patches/statuscolors/ + */ +#define STATUSCOLORS_PATCH 0 + +/* This patch adds configuration options for horizontal and vertical padding in the status bar. + * https://dwm.suckless.org/patches/statuspadding/ + */ +#define STATUSPADDING_PATCH 0 + +/* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. + * https://dwm.suckless.org/patches/sticky/ + */ +#define STICKY_PATCH 0 + +/* The systray patch adds systray for the status bar. + * https://dwm.suckless.org/patches/systray/ + */ +#define SYSTRAY_PATCH 0 + +/* 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. + * https://dwm.suckless.org/patches/swallow/ + */ +#define SWALLOW_PATCH 0 + +/* Switch focus between the master and stack columns using a single keybinding. + * https://dwm.suckless.org/patches/switchcol/ + */ +#define SWITCHCOL_PATCH 0 + +/* By default dwm allow you to set application specific rules so that you can have your browser, + * for example, start up on tag 9 optionally on a given monitor when you open your browser it is + * then automatically moved to the configured tag, but you have to manually enable the tag to see + * the newly opened application. + * This patch adds an extra configuration option for individual rules where: + * 0 is default behaviour + * 1 automatically moves you to the tag of the newly opened application and + * 2 enables the tag of the newly opened application in addition to your existing enabled tags + * + * Closing that window reverts the view back to what it was before the window was opened. + * + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff + * Also see https://dwm.suckless.org/patches/switchtotag + */ +#define SWITCHTAG_PATCH 0 + +/* Adds keyboard shortcuts to move all (or only floating) windows from one tag to another. + * https://dwm.suckless.org/patches/tagall/ + */ +#define TAGALL_PATCH 0 + +/* This patch allows you to move all visible windows on a monitor to an adjacent monitor. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagallmon-6.2.diff + */ +#define TAGALLMON_PATCH 0 + +/* This patch adds an option to place tags in rows like in many other window managers. + * https://dwm.suckless.org/patches/taggrid/ + */ +#define TAGGRID_PATCH 0 + +/* This patch makes new clients attach into the stack area when you toggle a new tag into + * view. This means your master area will remain unchanged when toggling views. + * The allmaster patch will cause all clients in the master area to be left alone. This patch + * takes precedence over the onemaster tagintostack patch. + * https://dwm.suckless.org/patches/tagintostack/ + */ +#define TAGINTOSTACK_ALLMASTER_PATCH 0 + +/* This patch makes new clients attach into the stack area when you toggle a new tag into + * view. This means your master area will remain unchanged when toggling views. + * The onemaster patch will cause the first client in the master area to be left alone. + * https://dwm.suckless.org/patches/tagintostack/ + */ +#define TAGINTOSTACK_ONEMASTER_PATCH 0 + +/* If you try to send a fullscreen window to an adjacent monitor using tagmon then + * the window is moved behind the scenes, but it remains in fullscreen on the original + * monitor until you exit fullscreen view (at which point it will appear on the adjacent + * monitor). This patch allows a fullscreen window to be moved to an adjacent monitor + * while remaining in fullscreen. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagmonfixfs-6.2.diff + */ +#define TAGMONFIXFS_PATCH 0 + +/* This patch allows you to swap all visible windows on one monitor with those of an + * adjacent monitor. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagswapmon-6.2.diff + */ +#define TAGSWAPMON_PATCH 0 + +/* Adds a new color scheme used by the (selected) window title in the bar. + * https://dwm.suckless.org/patches/titlecolor/ + */ +#define TITLECOLOR_PATCH 0 + +/* This patch allows you to toggle fullscreen on and off using a single shortcut key. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-togglefullscreen-6.2.diff + */ +#define TOGGLEFULLSCREEN_PATCH 0 + +/* This patch resets isfloating on any visible windows that have it set. + * Optionally also applies a layout. + * https://dwm.suckless.org/patches/unfloatvisible/ + */ +#define UNFLOATVISIBLE_PATCH 0 + +/* This patch makes "urgent" windows have different colors. + * https://dwm.suckless.org/patches/urgentborder/ + */ +#define URGENTBORDER_PATCH 0 + +/* This patch adds configurable gaps between windows differentiating between outer, inner, + * horizontal and vertical gaps. + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-6.2.diff + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-cfacts-6.2.diff + */ +#define VANITYGAPS_PATCH 0 + +/* Follow a window to the tag it is being moved to. + * https://dwm.suckless.org/patches/viewontag/ + */ +#define VIEWONTAG_PATCH 0 + +/* This patch warps the mouse cursor to the center of the currently focused window or screen + * when the mouse cursor is (a) on a different screen or (b) on top of a different window. + * https://dwm.suckless.org/patches/warp/ + */ +#define WARP_PATCH 0 + +/* Sometimes a single application opens different windows depending on the task + * at hand and this is often reflected in the WM_WINDOW_ROLE(STRING) x property. + * This patch adds the role field to the rule configuration so that one can + * differentiate between, say, Firefox "browser" vs "Preferences" vs "Manager" + * or Google-chrome "browser" vs "pop-up". + * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-windowrolerule-6.2.diff + */ +#define WINDOWROLERULE_PATCH 0 + +/* The winview patch allows switching the view to that of a given client from the all-window + * view (Mod-0) using a keyboard shortcut. + * http://dwm.suckless.org/patches/winview/ + */ +#define WINVIEW_PATCH 0 + +/* Allows dwm to read colors from xrdb (.Xresources) during runtime. Compatible with + * the float border color, awesomebar, urgentborder and titlecolor patches. + * https://dwm.suckless.org/patches/xrdb/ + */ +#define XRDB_PATCH 0 + +/* The zoomswap patch allows a master and a stack window to swap places + * rather than every window on the screen changing position. + * https://dwm.suckless.org/patches/zoomswap/ + */ +#define ZOOMSWAP_PATCH 0 + +/* Layouts */ + +/* Bottomstack layout. + * https://dwm.suckless.org/patches/bottomstack/ + */ +#define BSTACK_LAYOUT 0 + +/* Bottomstack horizontal layout. + * https://dwm.suckless.org/patches/bottomstack/ + */ +#define BSTACKHORIZ_LAYOUT 0 + +/* Centered master layout. + * https://dwm.suckless.org/patches/centeredmaster/ + */ +#define CENTEREDMASTER_LAYOUT 0 + +/* Centered floating master layout. + * https://dwm.suckless.org/patches/centeredmaster/ + */ +#define CENTEREDFLOATINGMASTER_LAYOUT 0 + +/* Same as the default tile layout except clients in the master area are arranged in + * columns (i.e. left to right). + * https://dwm.suckless.org/patches/columns/ + */ +#define COLUMNS_LAYOUT 0 + +/* Deck layout. + * https://dwm.suckless.org/patches/deck/ + */ +#define DECK_LAYOUT 0 + +/* Fibonacci dwindle layout. + * https://dwm.suckless.org/patches/fibonacci/ + */ +#define FIBONACCI_DWINDLE_LAYOUT 0 + +/* Fibonacci spiral layout. + * https://dwm.suckless.org/patches/fibonacci/ + */ +#define FIBONACCI_SPIRAL_LAYOUT 0 + +/* Flextile deluxe layout. + * A revamped, more flexible, and over-the-top version of the original flextile layout. + * https://dwm.suckless.org/patches/flextile/ (original) + */ +#define FLEXTILE_DELUXE_LAYOUT 0 + +/* Gappless grid layout. + * https://dwm.suckless.org/patches/gaplessgrid/ + */ +#define GAPPLESSGRID_LAYOUT 0 + +/* Gridmode (grid) layout. + * https://dwm.suckless.org/patches/gridmode/ + */ +#define GRIDMODE_LAYOUT 0 + +/* Horizontal grid (horizgrid) layout. + * https://dwm.suckless.org/patches/horizgrid/ + */ +#define HORIZGRID_LAYOUT 0 + +/* Grid layout where nmaster controls the number of rows. + * https://dwm.suckless.org/patches/nrowgrid/ + */ +#define NROWGRID_LAYOUT 0 + +/* The default tile layout. + * This can be optionally disabled in favour of other layouts. + */ +#define TILE_LAYOUT 1 + +/* Monocle layout (default). + * This can be optionally disabled in favour of other layouts. + */ +#define MONOCLE_LAYOUT 1 diff --git a/patches.h b/patches.h deleted file mode 100644 index 3ddaf51..0000000 --- a/patches.h +++ /dev/null @@ -1,643 +0,0 @@ -/* - * This file contains patch control flags. - * - * In principle you should be able to mix and match any patches - * you may want. In cases where patches are logically incompatible - * one patch may take precedence over the other as noted in the - * relevant descriptions. - * - * Although layouts typically come as patches they are differentiated - * here for grouping purposes. - */ - -/* Patches */ - -/* This patch changes the rectangle indicating if a tag is used by a client into a bar - * above the tag name for better visibility. - * https://dwm.suckless.org/patches/activetagindicatorbar/ - */ -#define ACTIVETAGINDICATORBAR_PATCH 0 - -/* The alpha patch adds transparency for the status bar. - * https://dwm.suckless.org/patches/alpha/ - */ -#define ALPHA_PATCH 0 - -/* This patch introduces alternative tags which can be switched on the fly for the - * sole purpose of providing visual aid. - * https://dwm.suckless.org/patches/alternativetags/ - */ -#define ALTERNATIVE_TAGS_PATCH 0 - -/* This patch prevents the focus to drift from the active fullscreen client when - * using focusstack(). - * https://dwm.suckless.org/patches/alwaysfullscreen/ - */ -#define ALWAYSFULLSCREEN_PATCH 0 - -/* This patch adds new clients above the selected client, instead of always - * becoming the new master. This behaviour is known from Xmonad. - * This patch takes precedence over ATTACHASIDE_PATCH. - * https://dwm.suckless.org/patches/attachabove/ - */ -#define ATTACHABOVE_PATCH 0 - -/* This patch adds new clients on top of the stack. - * This patch takes precedence over ATTACHBELOW_PATCH. - * https://dwm.suckless.org/patches/attachaside/ - */ -#define ATTACHASIDE_PATCH 0 - -/* This patch adds new clients below the selected client. - * This patch takes precedence over ATTACHBOTTOM_PATCH. - * https://dwm.suckless.org/patches/attachbelow/ - */ -#define ATTACHBELOW_PATCH 0 - -/* This patch adds new clients at the bottom of the stack. - * https://dwm.suckless.org/patches/attachbottom/ - */ -#define ATTACHBOTTOM_PATCH 0 - -/* This patch will make dwm run "~/.config/dwm/autostart_blocking.sh" and - * "~/.config/dwm/autostart.sh &" before entering the handler loop. One or - * both of these files can be ommited. Note the path inside .config rather - * than the original ~/.dwm folder. - * https://dwm.suckless.org/patches/autostart/ - */ -#define AUTOSTART_PATCH 0 - -/* By default, windows that are not visible when requesting a resize/move will not - * get resized/moved. With this patch, they will. - * https://dwm.suckless.org/patches/autoresize/ - */ -#define AUTORESIZE_PATCH 0 - -/* Enhanced taskbar that shows the titles of all visible windows in the status bar - * and allows focus / hiding / unhiding of windows by clicking on the status bar. - * Awesomebar takes precedence over fancybar. - * https://dwm.suckless.org/patches/awesomebar/ - */ -#define AWESOMEBAR_PATCH 0 - -/* This patch adds an iscentered rule to automatically center clients on the current monitor. - * This patch takes precedence over centeredwindowname and fancybar patches. - * https://dwm.suckless.org/patches/center/ - */ -#define CENTER_PATCH 0 - -/* This patch centers the WM_NAME of the currently selected window on the status bar. - * Both fancybar and awesomebar patches take precedence over this patch. - * https://dwm.suckless.org/patches/centeredwindowname/ - */ -#define CENTEREDWINDOWNAME_PATCH 0 - -/* This patch provides the ability to assign different weights to clients in their - * respective stack in tiled layout. - * https://dwm.suckless.org/patches/cfacts/ - */ -#define CFACTS_PATCH 0 - -/* This patch allows color attributes to be set through the command line. - * https://dwm.suckless.org/patches/cmdcustomize/ - */ -#define CMDCUSTOMIZE_PATCH 0 - -/* This patch tweaks the tagging interface so that you can select multiple tags for tag - * or view by pressing all the right keys as a combo. For example to view tags 1 and 3, - * hold MOD and then press and hold 1 and 3 together. - * https://dwm.suckless.org/patches/combo/ - */ -#define COMBO_PATCH 0 - -/* The cyclelayouts patch lets you cycle through all your layouts. - * https://dwm.suckless.org/patches/cyclelayouts/ - */ -#define CYCLELAYOUTS_PATCH 0 - -/* Updates the position of dmenu to match that of the bar. I.e. if topbar is 0 then dmenu - * will appear at the bottom and if 1 then dmenu will appear at the top. - * https://dwm.suckless.org/patches/dmenumatchtop - */ -#define DMENUMATCHTOP_PATCH 0 - -/* This patch lets you resize the split in the tile layout (i.e. modify mfact) by holding - * the modkey and dragging the mouse. - * This patch can be a bit wonky with other layouts, but generally works. - * https://dwm.suckless.org/patches/dragmfact/ - */ -#define DRAGMFACT_PATCH 0 - -/* Simple dwmc client using a fork of fsignal to communicate with dwm. - * To use this either copy the patch/dwmc shell script to somewhere in your path or - * uncomment the following line in Makefile: #cp -f patch/dwmc ${DESTDIR}${PREFIX}/bin - * http://dwm.suckless.org/patches/dwmc/ - */ -#define DWMC_PATCH 0 - -/* This patch allows no tag at all to be selected. The result is that dwm will start with - * no tag selected and when you start a client with no tag rule and no tag selected then - * it will be opened on the first tag. - * https://dwm.suckless.org/patches/emptyview/ - */ -#define EMPTYVIEW_PATCH 0 - -/* Adds EWMH support for _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES - * and _NET_DESKTOP_VIEWPORT, which allows for compatibility with other bars and programs - * that request workspace information. For example polybar's xworkspaces module. - * https://dwm.suckless.org/patches/ewmhtags/ - */ -#define EWMHTAGS_PATCH 0 - -/* This patch allows the user to change size and placement of floating windows using only the - * keyboard. It also allows for temporary vertical and horizontal extension of windows similar - * to other WMs fill command. - * https://dwm.suckless.org/patches/exresize/ - */ -#define EXRESIZE_PATCH 0 - -/* This patch will enable an extra status bar in dwm in a similar manner to the dualstatus - * patch. If the primary status is at the top via topbar then the extra status bar will be - * placed at the bottom and vice versa. - * https://dwm.suckless.org/patches/extrabar/ - */ -#define EXTRABAR_PATCH 0 - -/* Only allow clients to "fullscreen" into the space currently given to them. - * As an example, this will allow you to view a fullscreen video in your browser on - * one half of the screen, while having the other half available for other tasks. - * https://dwm.suckless.org/patches/fakefullscreen/ - */ -#define FAKEFULLSCREEN_PATCH 0 - -/* Similarly to the fakefullscreen patch this patch only allows clients to "fullscreen" into - * the space currently given to them. - * The "twist" with this patch is that fake fullscreen can be toggled on a per client basis - * rather than applying to all clients globally. - */ -#define FAKEFULLSCREEN_CLIENT_PATCH 0 - -/* This patch shows the titles of all visible windows in the status bar - * (as opposed to showing only the selected one). - * Awesomebar takes precedence over fancybar. Fancybar takes precedence over - * the centeredwindowname patch. - * https://dwm.suckless.org/patches/fancybar/ - */ -#define FANCYBAR_PATCH 0 - -/* This patch provides the ability to focus the tag on the immediate left or right of the - * currently focused tag. It also allows to send the focused window either on the left or - * the right tag. - * http://dwm.suckless.org/patches/focusadjacenttag/ - */ -#define FOCUSADJACENTTAG_PATCH 0 - -/* Switch focus only by mouse click and not sloppy (focus follows mouse pointer). - * https://dwm.suckless.org/patches/focusonclick/ - */ -#define FOCUSONCLICK_PATCH 0 - -/* Selects the next window having the urgent flag regardless of the tag it is on. - * The urgent flag can be artificially set with the following xdotool command on any window: - * xdotool selectwindow -- set_window --urgency 1 - * https://dwm.suckless.org/patches/focusurgent/ - */ -#define FOCUSURGENT_PATCH 0 - -/* This patch allows a different border color to be chosen for floating windows. - * https://dwm.suckless.org/patches/float_border_color/ - */ -#define FLOAT_BORDER_COLOR_PATCH 0 - -/* By default, dwm responds to _NET_ACTIVE_WINDOW client messages by setting - * the urgency bit on the named window. This patch activates the window instead. - * https://dwm.suckless.org/patches/focusonnetactive/ - */ -#define FOCUSONNETACTIVE_PATCH 0 - -/* Applies the monocle layout with the focused client on top and hides the bar. When pressed - * again it shows the bar and restores the layout that was active before going fullscreen. - * NB: This patch assumes that the third layout is monocle and that the bar is shown. - * https://dwm.suckless.org/patches/fullscreen/ - */ -#define FULLSCREEN_PATCH 0 - -/* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar. - * https://dwm.suckless.org/patches/hide_vacant_tags/ - */ -#define HIDEVACANTTAGS_PATCH 0 - -/* With this patch dwm's built-in status bar is only shown when HOLDKEY is pressed - * and the bar will now overlay the display. - * http://dwm.suckless.org/patches/holdbar/ - */ -#define HOLDBAR_PATCH 0 - -/* This patch provides a keybinding to rotate all clients in the currently selected - * area (master or stack) without affecting the other area. - * https://dwm.suckless.org/patches/inplacerotate/ - */ -#define INPLACEROTATE_PATCH 0 - -/* Adds rule option for clients to avoid accidental termination by killclient for sticky windows. - * https://dwm.suckless.org/patches/ispermanent/ - */ -#define ISPERMANENT_PATCH 0 - -/* Sometimes dwm crashes when it cannot render some glyphs in window titles (usually emoji). - * This patch is essentially a hack to ignore any errors when drawing text on the status bar. - * https://groups.google.com/forum/m/#!topic/wmii/7bncCahYIww - * https://docs.google.com/viewer?a=v&pid=forums&srcid=MDAwODA2MTg0MDQyMjE0OTgzMzMBMDQ3ODQzODkyMTU3NTAyMTMxNTYBX2RUMVNtOUtDQUFKATAuMQEBdjI&authuser=0 - */ -#define IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH 0 - -/* This patch adds a keybinding to kills all visible clients that are not selected. - * https://dwm.suckless.org/patches/killunsel/ - */ -#define KILLUNSEL_PATCH 0 - -/* Moves the layout symbol in the status bar to the left hand side. - * http://dwm.suckless.org/patches/leftlayout/ - */ -#define LEFTLAYOUT_PATCH 0 - -/* By default in dwm it is possible to make an application fullscreen, then use - * the focusstack keybindings to focus on other windows beneath the current window. - * It is also possible to spawn new windows (e.g. a terminal) that end up getting - * focus while the previous window remains in fullscreen. This patch ensures that - * in such scenarios the previous window loses fullscreen. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-losefullscreen-6.2.diff - */ -#define LOSEFULLSCREEN_PATCH 0 - -/* This patch adds helper functions for maximizing, horizontally and vertically, floating - * windows using keybindings. - * https://dwm.suckless.org/patches/maximize/ - */ -#define MAXIMIZE_PATCH 0 - -/* Control Music Player Daemon via keybinds. - * This patch depends on an additional library lmdpclient so if you want to enable this - * then you will also have to append -lmpdclient to the LIBS configuration in config.mk. - * A placeholder has been added there for reference. - * https://dwm.suckless.org/patches/mpdcontrol/ - */ -#define MDPCONTROL_PATCH 0 - -/* Adds rules per monitor, e.g. have default layouts per monitor. - * The use case for this is if the second monitor is vertical (i.e. rotated) then - * you may want to use a different default layout for this monitor than what is - * used for the main monitor. E.g. normal vertical split for main monitor and - * horizontal split for the second. - */ -#define MONITOR_RULES_PATCH 0 - -/* Always display the the monocle-symbol as defined in config.h if the monocle-layout - * is activated. Do not display the number of open clients in the current tag. - * https://dwm.suckless.org/patches/monoclesymbol/ - */ -#define MONOCLESYMBOL_PATCH 0 - -/* This patch allows you to move clients around in the stack and swap them with the master. - * https://dwm.suckless.org/patches/movestack/ - */ -#define MOVESTACK_PATCH 0 - -/* Removes the border when there is only one window visible. - * https://dwm.suckless.org/patches/noborder/ - */ -#define NOBORDER_PATCH 0 - -/* Enable modifying or removing dmenu in config.def.h which resulted previously in a - * compilation error because two lines of code hardcode dmenu into dwm. - * https://dwm.suckless.org/patches/nodmenu/ - */ -#define NODMENU_PATCH 0 - -/* This patch makes it so dwm will only exit via quit() if no windows are open. - * This is to prevent you accidentally losing all your work. - * https://dwm.suckless.org/patches/onlyquitonempty/ - */ -#define ONLYQUITONEMPTY_PATCH 0 - -/* The pertag patch adds nmaster, mfacts and layouts per tag rather than per - * monitor (default). - * https://dwm.suckless.org/patches/pertag/ - */ -#define PERTAG_PATCH 0 - -/* This controls whether or not to also store bar position on a per - * tag basis, or leave it as one bar per monitor. - */ -#define PERTAGBAR_PATCH 0 - -/* This patch provides a way to move clients up and down inside the client list. - * https://dwm.suckless.org/patches/push/ - */ -#define PUSH_PATCH 0 - -/* This patch provides a way to move clients up and down inside the client list, - * but does not push up or down into the master area (except that it does not take - * nmaster into account). - * This takes precedence over the push patch above. - * https://dwm.suckless.org/patches/push/ - */ -#define PUSH_NO_MASTER_PATCH 0 - -/* By default, windows only resize from the bottom right corner. With this - * patch the mouse is warped to the nearest corner and you resize from there. - * https://dwm.suckless.org/patches/resizecorners/ - */ -#define RESIZECORNERS_PATCH 0 - -/* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid. - * Additionally dwm can quit cleanly by using kill -TERM dwmpid. - * https://dwm.suckless.org/patches/restartsig/ - */ -#define RESTARTSIG_PATCH 0 - -/* This patch let's you rotate through the stack using keyboard shortcuts. - * https://dwm.suckless.org/patches/rotatestack/ - */ -#define ROTATESTACK_PATCH 0 - -/* This patch saves size and position of every floating window before it is forced - * into tiled mode. If the window is made floating again then the old dimensions - * will be restored. - * https://dwm.suckless.org/patches/save_floats/ - */ -#define SAVEFLOATS_PATCH 0 - -/* The scratchpad patch allows you to spawn or restore a floating terminal window. - * It is typically useful when one need to do some short typing. - * https://dwm.suckless.org/patches/scratchpad/ - */ -#define SCRATCHPAD_PATCH 0 - -/* Allows restarting dwm without the dependency of an external script. - * https://dwm.suckless.org/patches/selfrestart/ - */ -#define SELFRESTART_PATCH 0 - -/* This patch allows border pixels to be changed during runtime. - * https://dwm.suckless.org/patches/setborderpx/ - */ -#define SETBORDERPX_PATCH 0 - -/* In a multi-head setup monitor 0 is by default the primary screen, with the left and right - * screen being monitor 1 and 2 respectively. This patch sorts screens left to right (or - * top to bottom in a vertical layout) which aims to address some inconsistencies when it - * comes to focusmon, tagmon and similar functionality. - * https://www.mail-archive.com/hackers@suckless.org/msg09400.html - */ -#define SORTSCREENS_PATCH 0 - -/* Spawns programs from currently focused client's working directory. - * https://dwm.suckless.org/patches/spawn_cwd/ - */ -#define SPAWNCMD_PATCH 0 - -/* This patch draws and updates the statusbar on all monitors. - * https://dwm.suckless.org/patches/statusallmons/ - */ -#define STATUSALLMONS_PATCH 0 - -/* This patch enables colored text in the status bar. It changes the way colors are defined - * in config.h allowing multiple color combinations for use in the status script. - * https://dwm.suckless.org/patches/statuscolors/ - */ -#define STATUSCOLORS_PATCH 0 - -/* This patch adds configuration options for horizontal and vertical padding in the status bar. - * https://dwm.suckless.org/patches/statuspadding/ - */ -#define STATUSPADDING_PATCH 0 - -/* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. - * https://dwm.suckless.org/patches/sticky/ - */ -#define STICKY_PATCH 0 - -/* The systray patch adds systray for the status bar. - * https://dwm.suckless.org/patches/systray/ - */ -#define SYSTRAY_PATCH 0 - -/* 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. - * https://dwm.suckless.org/patches/swallow/ - */ -#define SWALLOW_PATCH 0 - -/* Switch focus between the master and stack columns using a single keybinding. - * https://dwm.suckless.org/patches/switchcol/ - */ -#define SWITCHCOL_PATCH 0 - -/* By default dwm allow you to set application specific rules so that you can have your browser, - * for example, start up on tag 9 optionally on a given monitor when you open your browser it is - * then automatically moved to the configured tag, but you have to manually enable the tag to see - * the newly opened application. - * This patch adds an extra configuration option for individual rules where: - * 0 is default behaviour - * 1 automatically moves you to the tag of the newly opened application and - * 2 enables the tag of the newly opened application in addition to your existing enabled tags - * - * Closing that window reverts the view back to what it was before the window was opened. - * - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff - * Also see https://dwm.suckless.org/patches/switchtotag - */ -#define SWITCHTAG_PATCH 0 - -/* Adds keyboard shortcuts to move all (or only floating) windows from one tag to another. - * https://dwm.suckless.org/patches/tagall/ - */ -#define TAGALL_PATCH 0 - -/* This patch allows you to move all visible windows on a monitor to an adjacent monitor. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagallmon-6.2.diff - */ -#define TAGALLMON_PATCH 0 - -/* This patch adds an option to place tags in rows like in many other window managers. - * https://dwm.suckless.org/patches/taggrid/ - */ -#define TAGGRID_PATCH 0 - -/* This patch makes new clients attach into the stack area when you toggle a new tag into - * view. This means your master area will remain unchanged when toggling views. - * The allmaster patch will cause all clients in the master area to be left alone. This patch - * takes precedence over the onemaster tagintostack patch. - * https://dwm.suckless.org/patches/tagintostack/ - */ -#define TAGINTOSTACK_ALLMASTER_PATCH 0 - -/* This patch makes new clients attach into the stack area when you toggle a new tag into - * view. This means your master area will remain unchanged when toggling views. - * The onemaster patch will cause the first client in the master area to be left alone. - * https://dwm.suckless.org/patches/tagintostack/ - */ -#define TAGINTOSTACK_ONEMASTER_PATCH 0 - -/* If you try to send a fullscreen window to an adjacent monitor using tagmon then - * the window is moved behind the scenes, but it remains in fullscreen on the original - * monitor until you exit fullscreen view (at which point it will appear on the adjacent - * monitor). This patch allows a fullscreen window to be moved to an adjacent monitor - * while remaining in fullscreen. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagmonfixfs-6.2.diff - */ -#define TAGMONFIXFS_PATCH 0 - -/* This patch allows you to swap all visible windows on one monitor with those of an - * adjacent monitor. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagswapmon-6.2.diff - */ -#define TAGSWAPMON_PATCH 0 - -/* Adds a new color scheme used by the (selected) window title in the bar. - * https://dwm.suckless.org/patches/titlecolor/ - */ -#define TITLECOLOR_PATCH 0 - -/* This patch allows you to toggle fullscreen on and off using a single shortcut key. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-togglefullscreen-6.2.diff - */ -#define TOGGLEFULLSCREEN_PATCH 0 - -/* This patch resets isfloating on any visible windows that have it set. - * Optionally also applies a layout. - * https://dwm.suckless.org/patches/unfloatvisible/ - */ -#define UNFLOATVISIBLE_PATCH 0 - -/* This patch makes "urgent" windows have different colors. - * https://dwm.suckless.org/patches/urgentborder/ - */ -#define URGENTBORDER_PATCH 0 - -/* This patch adds configurable gaps between windows differentiating between outer, inner, - * horizontal and vertical gaps. - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-6.2.diff - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-cfacts-6.2.diff - */ -#define VANITYGAPS_PATCH 0 - -/* Follow a window to the tag it is being moved to. - * https://dwm.suckless.org/patches/viewontag/ - */ -#define VIEWONTAG_PATCH 0 - -/* This patch warps the mouse cursor to the center of the currently focused window or screen - * when the mouse cursor is (a) on a different screen or (b) on top of a different window. - * https://dwm.suckless.org/patches/warp/ - */ -#define WARP_PATCH 0 - -/* Sometimes a single application opens different windows depending on the task - * at hand and this is often reflected in the WM_WINDOW_ROLE(STRING) x property. - * This patch adds the role field to the rule configuration so that one can - * differentiate between, say, Firefox "browser" vs "Preferences" vs "Manager" - * or Google-chrome "browser" vs "pop-up". - * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-windowrolerule-6.2.diff - */ -#define WINDOWROLERULE_PATCH 0 - -/* The winview patch allows switching the view to that of a given client from the all-window - * view (Mod-0) using a keyboard shortcut. - * http://dwm.suckless.org/patches/winview/ - */ -#define WINVIEW_PATCH 0 - -/* Allows dwm to read colors from xrdb (.Xresources) during runtime. Compatible with - * the float border color, awesomebar, urgentborder and titlecolor patches. - * https://dwm.suckless.org/patches/xrdb/ - */ -#define XRDB_PATCH 0 - -/* The zoomswap patch allows a master and a stack window to swap places - * rather than every window on the screen changing position. - * https://dwm.suckless.org/patches/zoomswap/ - */ -#define ZOOMSWAP_PATCH 0 - -/* Layouts */ - -/* Bottomstack layout. - * https://dwm.suckless.org/patches/bottomstack/ - */ -#define BSTACK_LAYOUT 0 - -/* Bottomstack horizontal layout. - * https://dwm.suckless.org/patches/bottomstack/ - */ -#define BSTACKHORIZ_LAYOUT 0 - -/* Centered master layout. - * https://dwm.suckless.org/patches/centeredmaster/ - */ -#define CENTEREDMASTER_LAYOUT 0 - -/* Centered floating master layout. - * https://dwm.suckless.org/patches/centeredmaster/ - */ -#define CENTEREDFLOATINGMASTER_LAYOUT 0 - -/* Same as the default tile layout except clients in the master area are arranged in - * columns (i.e. left to right). - * https://dwm.suckless.org/patches/columns/ - */ -#define COLUMNS_LAYOUT 0 - -/* Deck layout. - * https://dwm.suckless.org/patches/deck/ - */ -#define DECK_LAYOUT 0 - -/* Fibonacci dwindle layout. - * https://dwm.suckless.org/patches/fibonacci/ - */ -#define FIBONACCI_DWINDLE_LAYOUT 0 - -/* Fibonacci spiral layout. - * https://dwm.suckless.org/patches/fibonacci/ - */ -#define FIBONACCI_SPIRAL_LAYOUT 0 - -/* Flextile deluxe layout. - * A revamped, more flexible, and over-the-top version of the original flextile layout. - * https://dwm.suckless.org/patches/flextile/ (original) - */ -#define FLEXTILE_DELUXE_LAYOUT 0 - -/* Gappless grid layout. - * https://dwm.suckless.org/patches/gaplessgrid/ - */ -#define GAPPLESSGRID_LAYOUT 0 - -/* Gridmode (grid) layout. - * https://dwm.suckless.org/patches/gridmode/ - */ -#define GRIDMODE_LAYOUT 0 - -/* Horizontal grid (horizgrid) layout. - * https://dwm.suckless.org/patches/horizgrid/ - */ -#define HORIZGRID_LAYOUT 0 - -/* Grid layout where nmaster controls the number of rows. - * https://dwm.suckless.org/patches/nrowgrid/ - */ -#define NROWGRID_LAYOUT 0 - -/* The default tile layout. - * This can be optionally disabled in favour of other layouts. - */ -#define TILE_LAYOUT 1 - -/* Monocle layout (default). - * This can be optionally disabled in favour of other layouts. - */ -#define MONOCLE_LAYOUT 1 -- cgit v1.2.3