Adding statuscolors patch

pull/32/head
bakkeby 5 years ago
parent 132ceee073
commit fc28c6a7b2

@ -13,7 +13,7 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t
### Changelog: ### Changelog:
2019-10-06 - Added statusallmons patch, fixed minor cross-compatibility issues for killunsel, fullscreen, noborder, tagintostack patches 2019-10-06 - Added statuscolors and statusallmons patches, fixed minor cross-compatibility issues for killunsel, fullscreen, noborder, tagintostack patches
2019-10-05 - Added killunsel, taggrid, hidevacanttags and cmdcustomize patches 2019-10-05 - Added killunsel, taggrid, hidevacanttags and cmdcustomize patches
@ -195,6 +195,9 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t
- [statusallmons](https://dwm.suckless.org/patches/statuspadding/) - [statusallmons](https://dwm.suckless.org/patches/statuspadding/)
- this patch draws and updates the statusbar on all monitors - this patch draws and updates the statusbar on all monitors
- [statuscolors](https://dwm.suckless.org/patches/statuscolors/)
- enables colored text in the status bar allowing multiple color combinations for use in the status script
- [statuspadding](https://dwm.suckless.org/patches/statuspadding/) - [statuspadding](https://dwm.suckless.org/patches/statuspadding/)
- adds configuration options for horizontal and vertical padding in the status bar - adds configuration options for horizontal and vertical padding in the status bar

@ -6,8 +6,8 @@ static const unsigned int snap = 32; /* snap pixel */
#if VANITYGAPS_PATCH #if VANITYGAPS_PATCH
static const unsigned int gappih = 20; /* horiz inner gap between windows */ static const unsigned int gappih = 20; /* horiz inner gap between windows */
static const unsigned int gappiv = 10; /* vert inner gap between windows */ static const unsigned int gappiv = 10; /* vert inner gap between windows */
static const unsigned int gappoh = 10 /* horiz outer gap between windows and screen edge */ static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static const unsigned int gappov = 30 /* vert outer gap between windows and screen edge */ static const unsigned int gappov = 30; /* vert outer gap between windows and screen edge */
static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */ static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
#endif // VANITYGAPS_PATCH #endif // VANITYGAPS_PATCH
#if HOLDBAR_PATCH #if HOLDBAR_PATCH
@ -49,14 +49,23 @@ static char selbordercolor[] = "#005577";
static char selfloatcolor[] = "#005577"; static char selfloatcolor[] = "#005577";
#endif // FLOAT_BORDER_COLOR_PATCH #endif // FLOAT_BORDER_COLOR_PATCH
#if URGENTBORDER_PATCH #if STATUSCOLORS_PATCH
static char warnfgcolor[] = "#000000";
static char warnbgcolor[] = "#ffff00";
static char warnbordercolor[] = "#ff0000";
#if FLOAT_BORDER_COLOR_PATCH
static char warnfloatcolor[] = "#ffffff";
#endif // FLOAT_BORDER_COLOR_PATCH
#endif // STATUSCOLORS_PATCH
#if URGENTBORDER_PATCH || STATUSCOLORS_PATCH
static char urgfgcolor[] = "#000000"; static char urgfgcolor[] = "#000000";
static char urgbgcolor[] = "#000000"; static char urgbgcolor[] = "#000000";
static char urgbordercolor[] = "#ff0000"; // NB: patch only works with border color for now static char urgbordercolor[] = "#ff0000"; // NB: patch only works with border color for now
#if FLOAT_BORDER_COLOR_PATCH #if FLOAT_BORDER_COLOR_PATCH
static char urgfloatcolor[] = "#000000"; static char urgfloatcolor[] = "#000000";
#endif // FLOAT_BORDER_COLOR_PATCH #endif // FLOAT_BORDER_COLOR_PATCH
#endif // URGENTBORDER_PATCH #endif // URGENTBORDER_PATCH // STATUSCOLORS_PATCH
#if AWESOMEBAR_PATCH #if AWESOMEBAR_PATCH
static char hidfgcolor[] = "#005577"; static char hidfgcolor[] = "#005577";
@ -83,9 +92,12 @@ static const unsigned int alphas[][3] = {
/* fg bg border */ /* fg bg border */
[SchemeNorm] = { OPAQUE, baralpha, borderalpha }, [SchemeNorm] = { OPAQUE, baralpha, borderalpha },
[SchemeSel] = { OPAQUE, baralpha, borderalpha }, [SchemeSel] = { OPAQUE, baralpha, borderalpha },
#if URGENTBORDER_PATCH #if STATUSCOLORS_PATCH
[SchemeWarn] = { OPAQUE, baralpha, borderalpha },
#endif // STATUSCOLORS_PATCH
#if URGENTBORDER_PATCH || STATUSCOLORS_PATCH
[SchemeUrg] = { OPAQUE, baralpha, borderalpha }, [SchemeUrg] = { OPAQUE, baralpha, borderalpha },
#endif // URGENTBORDER_PATCH #endif // URGENTBORDER_PATCH / STATUSCOLORS_PATCH
#if AWESOMEBAR_PATCH #if AWESOMEBAR_PATCH
[SchemeHid] = { OPAQUE, baralpha, borderalpha }, [SchemeHid] = { OPAQUE, baralpha, borderalpha },
#endif // AWESOMEBAR_PATCH #endif // AWESOMEBAR_PATCH
@ -103,9 +115,12 @@ char *colors[][4] = {
/* fg bg border float */ /* fg bg border float */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor, normfloatcolor }, [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor, normfloatcolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor, selfloatcolor }, [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor, selfloatcolor },
#if URGENTBORDER_PATCH #if STATUSCOLORS_PATCH
[SchemeWarn] = { warnfgcolor, warnbgcolor, warnbordercolor, warnfloatcolor },
#endif // STATUSCOLORS_PATCH
#if URGENTBORDER_PATCH || STATUSCOLORS_PATCH
[SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor, urgfloatcolor }, [SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor, urgfloatcolor },
#endif // URGENTBORDER_PATCH #endif // URGENTBORDER_PATCH / STATUSCOLORS_PATCH
#if AWESOMEBAR_PATCH #if AWESOMEBAR_PATCH
[SchemeHid] = { hidfgcolor, hidbgcolor, hidbordercolor, hidfloatcolor }, [SchemeHid] = { hidfgcolor, hidbgcolor, hidbordercolor, hidfloatcolor },
#endif // AWESOMEBAR_PATCH #endif // AWESOMEBAR_PATCH
@ -122,9 +137,12 @@ char *colors[][3] = {
/* fg bg border */ /* fg bg border */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor }, [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
#if URGENTBORDER_PATCH #if STATUSCOLORS_PATCH
[SchemeWarn] = { warnfgcolor, warnbgcolor, warnbordercolor },
#endif // STATUSCOLORS_PATCH
#if URGENTBORDER_PATCH || STATUSCOLORS_PATCH
[SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor }, [SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor },
#endif // URGENTBORDER_PATCH #endif // URGENTBORDER_PATCH / STATUSCOLORS_PATCH
#if AWESOMEBAR_PATCH #if AWESOMEBAR_PATCH
[SchemeHid] = { hidfgcolor, hidbgcolor, hidbordercolor }, [SchemeHid] = { hidfgcolor, hidbgcolor, hidbordercolor },
#endif // AWESOMEBAR_PATCH #endif // AWESOMEBAR_PATCH

79
dwm.c

@ -77,9 +77,12 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
enum { enum {
SchemeNorm SchemeNorm
,SchemeSel ,SchemeSel
#if URGENTBORDER_PATCH #if STATUSCOLORS_PATCH
,SchemeWarn
#endif // STATUSCOLORS_PATCH
#if URGENTBORDER_PATCH || STATUSCOLORS_PATCH
,SchemeUrg ,SchemeUrg
#endif // URGENTBORDER_PATCH #endif // URGENTBORDER_PATCH || STATUSCOLORS_PATCH
#if AWESOMEBAR_PATCH #if AWESOMEBAR_PATCH
,SchemeHid ,SchemeHid
#endif // AWESOMEBAR_PATCH #endif // AWESOMEBAR_PATCH
@ -1188,7 +1191,7 @@ dirtomon(int dir)
void void
drawbar(Monitor *m) drawbar(Monitor *m)
{ {
int x, w, sw = 0; int x, w, sw = 0, invert;
#if ALTERNATIVE_TAGS_PATCH #if ALTERNATIVE_TAGS_PATCH
int wdelta; int wdelta;
#endif // ALTERNATIVE_TAGS_PATCH #endif // ALTERNATIVE_TAGS_PATCH
@ -1208,6 +1211,12 @@ drawbar(Monitor *m)
int boxw = drw->fonts->h / 6 + 2; int boxw = drw->fonts->h / 6 + 2;
#endif // HIDEVACANTTAGS_PATCH #endif // HIDEVACANTTAGS_PATCH
unsigned int i, occ = 0, urg = 0; unsigned int i, occ = 0, urg = 0;
#if STATUSCOLORS_PATCH
char *ts = stext;
char *tp = stext;
int tx = 0;
char ctmp;
#endif // STATUSCOLORS_PATCH
Client *c; Client *c;
#if SYSTRAY_PATCH #if SYSTRAY_PATCH
@ -1222,19 +1231,54 @@ drawbar(Monitor *m)
drw_setscheme(drw, scheme[SchemeNorm]); drw_setscheme(drw, scheme[SchemeNorm]);
#if STATUSPADDING_PATCH #if STATUSPADDING_PATCH
sw = TEXTW(stext); sw = TEXTW(stext);
#else
sw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
#endif // STATUSPADDING_PATCH
#if STATUSCOLORS_PATCH
while (1) {
if ((unsigned int)*ts > LENGTH(colors)) {
ts++;
continue;
}
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
tx += TEXTW(tp) -lrpad;
if (ctmp == '\0') {
break;
}
drw_setscheme(drw, scheme[(unsigned int)(ctmp-1)]);
*ts = ctmp;
tp = ++ts;
}
#else // STATUSCOLORS_PATCH
#if STATUSPADDING_PATCH
#if SYSTRAY_PATCH #if SYSTRAY_PATCH
drw_text(drw, m->ww - sw - stw, 0, sw, bh, lrpad / 2, stext, 0); drw_text(drw, m->ww - sw - stw, 0, sw, bh, lrpad / 2, stext, 0);
#else #else
drw_text(drw, m->ww - sw, 0, sw, bh, lrpad / 2, stext, 0); drw_text(drw, m->ww - sw, 0, sw, bh, lrpad / 2, stext, 0);
#endif // SYSTRAY_PATCH #endif // SYSTRAY_PATCH
#else #else // STATUSPADDING_PATCH
sw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
#if SYSTRAY_PATCH #if SYSTRAY_PATCH
drw_text(drw, m->ww - sw - stw, 0, sw, bh, 0, stext, 0); drw_text(drw, m->ww - sw - stw, 0, sw, bh, 0, stext, 0);
#else #else
drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0); drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0);
#endif // SYSTRAY_PATCH #endif // SYSTRAY_PATCH
#endif // STATUSPADDING_PATCH #endif // STATUSPADDING_PATCH
#endif // STATUSCOLORS_PATCH
#if !STATUSALLMONS_PATCH #if !STATUSALLMONS_PATCH
} }
#endif // STATUSALLMONS_PATCH #endif // STATUSALLMONS_PATCH
@ -1262,6 +1306,11 @@ drawbar(Monitor *m)
if (drawtagmask & DRAWCLASSICTAGS) if (drawtagmask & DRAWCLASSICTAGS)
#endif // TAGGRID_PATCH #endif // TAGGRID_PATCH
for (i = 0; i < LENGTH(tags); i++) { for (i = 0; i < LENGTH(tags); i++) {
#if URGENTBORDER_PATCH
invert = 0;
#else
invert = urg & 1 << i;
#endif // URGENTBORDER_PATCH
#if HIDEVACANTTAGS_PATCH #if HIDEVACANTTAGS_PATCH
/* do not draw vacant tags */ /* do not draw vacant tags */
if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i)) if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
@ -1271,23 +1320,27 @@ drawbar(Monitor *m)
#if ALTERNATIVE_TAGS_PATCH #if ALTERNATIVE_TAGS_PATCH
wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0; wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0;
#endif // ALTERNATIVE_TAGS_PATCH #endif // ALTERNATIVE_TAGS_PATCH
#if URGENTBORDER_PATCH
if (m->tagset[m->seltags] & 1 << i)
drw_setscheme(drw, scheme[SchemeSel]);
else
drw_setscheme(drw, scheme[urg & 1 << i ? SchemeUrg : SchemeNorm]);
#else // URGENTBORDER_PATCH
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]); drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
#endif // URGENTBORDER_PATCH
#if ALTERNATIVE_TAGS_PATCH #if ALTERNATIVE_TAGS_PATCH
drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : tags[i]), urg & 1 << i); drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : tags[i]), invert);
#else #else
drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i); drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], invert);
#endif // ALTERNATIVE_TAGS_PATCH #endif // ALTERNATIVE_TAGS_PATCH
#if !HIDEVACANTTAGS_PATCH #if !HIDEVACANTTAGS_PATCH
if (occ & 1 << i) if (occ & 1 << i)
#if ACTIVETAGINDICATORBAR_PATCH #if ACTIVETAGINDICATORBAR_PATCH
drw_rect(drw, x + boxw, 0, w - ( 2 * boxw + 1), boxw, drw_rect(drw, x + boxw, 0, w - ( 2 * boxw + 1), boxw,
m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
urg & 1 << i);
#else #else
drw_rect(drw, x + boxs, boxs, boxw, boxw, drw_rect(drw, x + boxs, boxs, boxw, boxw,
m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
urg & 1 << i);
#endif // ACTIVETAGINDICATORBAR_PATCH #endif // ACTIVETAGINDICATORBAR_PATCH
m == selmon && selmon->sel && selmon->sel->tags & 1 << i, invert);
#endif // HIDEVACANTTAGS_PATCH #endif // HIDEVACANTTAGS_PATCH
x += w; x += w;
} }
@ -2034,6 +2087,10 @@ propertynotify(XEvent *e)
case XA_WM_HINTS: case XA_WM_HINTS:
updatewmhints(c); updatewmhints(c);
drawbars(); drawbars();
#if URGENTBORDER_PATCH
if (c->isurgent)
XSetWindowBorder(dpy, c->win, scheme[SchemeUrg][ColBorder].pixel);
#endif // URGENTBORDER_PATCH
break; break;
} }
if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) { if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {

@ -21,13 +21,13 @@
/* The alpha patch adds transparency for the status bar. /* The alpha patch adds transparency for the status bar.
* https://dwm.suckless.org/patches/alpha/ * https://dwm.suckless.org/patches/alpha/
*/ */
#define ALPHA_PATCH 1 #define ALPHA_PATCH 0
/* This patch introduces alternative tags which can be switched on the fly for the /* This patch introduces alternative tags which can be switched on the fly for the
* sole purpose of providing visual aid. * sole purpose of providing visual aid.
* https://dwm.suckless.org/patches/alternativetags/ * https://dwm.suckless.org/patches/alternativetags/
*/ */
#define ALTERNATIVE_TAGS_PATCH 1 #define ALTERNATIVE_TAGS_PATCH 0
/* This patch prevents the focus to drift from the active fullscreen client when /* This patch prevents the focus to drift from the active fullscreen client when
* using focusstack(). * using focusstack().
@ -46,7 +46,7 @@
* This patch takes precedence over ATTACHBELOW_PATCH. * This patch takes precedence over ATTACHBELOW_PATCH.
* https://dwm.suckless.org/patches/attachaside/ * https://dwm.suckless.org/patches/attachaside/
*/ */
#define ATTACHASIDE_PATCH 1 #define ATTACHASIDE_PATCH 0
/* This patch adds new clients below the selected client. /* This patch adds new clients below the selected client.
* This patch takes precedence over ATTACHBOTTOM_PATCH. * This patch takes precedence over ATTACHBOTTOM_PATCH.
@ -65,55 +65,55 @@
* than the original ~/.dwm folder. * than the original ~/.dwm folder.
* https://dwm.suckless.org/patches/autostart/ * https://dwm.suckless.org/patches/autostart/
*/ */
#define AUTOSTART_PATCH 1 #define AUTOSTART_PATCH 0
/* By default, windows that are not visible when requesting a resize/move will not /* By default, windows that are not visible when requesting a resize/move will not
* get resized/moved. With this patch, they will. * get resized/moved. With this patch, they will.
* https://dwm.suckless.org/patches/autoresize/ * https://dwm.suckless.org/patches/autoresize/
*/ */
#define AUTORESIZE_PATCH 1 #define AUTORESIZE_PATCH 0
/* Enhanced taskbar that shows the titles of all visible windows in the status bar /* 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. * and allows focus / hiding / unhiding of windows by clicking on the status bar.
* Awesomebar takes precedence over fancybar. * Awesomebar takes precedence over fancybar.
* https://dwm.suckless.org/patches/awesomebar/ * https://dwm.suckless.org/patches/awesomebar/
*/ */
#define AWESOMEBAR_PATCH 1 #define AWESOMEBAR_PATCH 0
/* This patch adds an iscentered rule to automatically center clients on the current monitor. /* This patch adds an iscentered rule to automatically center clients on the current monitor.
* This patch takes precedence over centeredwindowname and fancybar patches. * This patch takes precedence over centeredwindowname and fancybar patches.
* https://dwm.suckless.org/patches/center/ * https://dwm.suckless.org/patches/center/
*/ */
#define CENTER_PATCH 1 #define CENTER_PATCH 0
/* This patch centers the WM_NAME of the currently selected window on the status bar. /* 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. * Both fancybar and awesomebar patches take precedence over this patch.
* https://dwm.suckless.org/patches/centeredwindowname/ * https://dwm.suckless.org/patches/centeredwindowname/
*/ */
#define CENTEREDWINDOWNAME_PATCH 1 #define CENTEREDWINDOWNAME_PATCH 0
/* This patch provides the ability to assign different weights to clients in their /* This patch provides the ability to assign different weights to clients in their
* respective stack in tiled layout. * respective stack in tiled layout.
* https://dwm.suckless.org/patches/cfacts/ * https://dwm.suckless.org/patches/cfacts/
*/ */
#define CFACTS_PATCH 1 #define CFACTS_PATCH 0
/* This patch allows color attributes to be set through the command line. /* This patch allows color attributes to be set through the command line.
* https://dwm.suckless.org/patches/cmdcustomize/ * https://dwm.suckless.org/patches/cmdcustomize/
*/ */
#define CMDCUSTOMIZE 1 #define CMDCUSTOMIZE 0
/* This patch tweaks the tagging interface so that you can select multiple tags for tag /* 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, * 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. * hold MOD and then press and hold 1 and 3 together.
* https://dwm.suckless.org/patches/combo/ * https://dwm.suckless.org/patches/combo/
*/ */
#define COMBO_PATCH 1 #define COMBO_PATCH 0
/* The cyclelayouts patch lets you cycle through all your layouts. /* The cyclelayouts patch lets you cycle through all your layouts.
* https://dwm.suckless.org/patches/cyclelayouts/ * https://dwm.suckless.org/patches/cyclelayouts/
*/ */
#define CYCLELAYOUTS_PATCH 1 #define CYCLELAYOUTS_PATCH 0
/* This patch allows no tag at all to be selected. The result is that dwm will start with /* 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 * no tag selected and when you start a client with no tag rule and no tag selected then
@ -127,7 +127,7 @@
* that request workspace information. For example polybar's xworkspaces module. * that request workspace information. For example polybar's xworkspaces module.
* https://dwm.suckless.org/patches/ewmhtags/ * https://dwm.suckless.org/patches/ewmhtags/
*/ */
#define EWMHTAGS_PATCH 1 #define EWMHTAGS_PATCH 0
/* This patch shows the titles of all visible windows in the status bar /* This patch shows the titles of all visible windows in the status bar
* (as opposed to showing only the selected one). * (as opposed to showing only the selected one).
@ -142,7 +142,7 @@
* the right tag. * the right tag.
* http://dwm.suckless.org/patches/focusadjacenttag/ * http://dwm.suckless.org/patches/focusadjacenttag/
*/ */
#define FOCUSADJACENTTAG_PATCH 1 #define FOCUSADJACENTTAG_PATCH 0
/* Switch focus only by mouse click and not sloppy (focus follows mouse pointer). /* Switch focus only by mouse click and not sloppy (focus follows mouse pointer).
* https://dwm.suckless.org/patches/focusonclick/ * https://dwm.suckless.org/patches/focusonclick/
@ -154,25 +154,25 @@
* xdotool selectwindow -- set_window --urgency 1 * xdotool selectwindow -- set_window --urgency 1
* https://dwm.suckless.org/patches/focusurgent/ * https://dwm.suckless.org/patches/focusurgent/
*/ */
#define FOCUSURGENT_PATCH 1 #define FOCUSURGENT_PATCH 0
/* This patch allows a different border color to be chosen for floating windows. /* This patch allows a different border color to be chosen for floating windows.
* https://dwm.suckless.org/patches/float_border_color/ * https://dwm.suckless.org/patches/float_border_color/
*/ */
#define FLOAT_BORDER_COLOR_PATCH 1 #define FLOAT_BORDER_COLOR_PATCH 0
/* By default, dwm responds to _NET_ACTIVE_WINDOW client messages by setting /* 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. * the urgency bit on the named window. This patch activates the window instead.
* https://dwm.suckless.org/patches/focusonnetactive/ * https://dwm.suckless.org/patches/focusonnetactive/
*/ */
#define FOCUSONNETACTIVE_PATCH 1 #define FOCUSONNETACTIVE_PATCH 0
/* Applies the monocle layout with the focused client on top and hides the bar. When pressed /* 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. * 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. * NB: This patch assumes that the third layout is monocle and that the bar is shown.
* https://dwm.suckless.org/patches/fullscreen/ * https://dwm.suckless.org/patches/fullscreen/
*/ */
#define FULLSCREEN_PATCH 1 #define FULLSCREEN_PATCH 0
/* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar. /* This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the bar.
* https://dwm.suckless.org/patches/hide_vacant_tags/ * https://dwm.suckless.org/patches/hide_vacant_tags/
@ -188,7 +188,7 @@
/* This patch adds a keybinding to kills all visible clients that are not selected. /* This patch adds a keybinding to kills all visible clients that are not selected.
* https://dwm.suckless.org/patches/killunsel/ * https://dwm.suckless.org/patches/killunsel/
*/ */
#define KILLUNSEL_PATCH 1 #define KILLUNSEL_PATCH 0
/* Moves the layout symbol in the status bar to the left hand side. /* Moves the layout symbol in the status bar to the left hand side.
* http://dwm.suckless.org/patches/leftlayout/ * http://dwm.suckless.org/patches/leftlayout/
@ -202,13 +202,13 @@
* in such scenarios the previous window loses fullscreen. * in such scenarios the previous window loses fullscreen.
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-losefullscreen-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-losefullscreen-6.2.diff
*/ */
#define LOSEFULLSCREEN_PATCH 1 #define LOSEFULLSCREEN_PATCH 0
/* This patch adds helper functions for maximizing, horizontally and vertically, floating /* This patch adds helper functions for maximizing, horizontally and vertically, floating
* windows using keybindings. * windows using keybindings.
* https://dwm.suckless.org/patches/maximize/ * https://dwm.suckless.org/patches/maximize/
*/ */
#define MAXIMIZE_PATCH 1 #define MAXIMIZE_PATCH 0
/* Adds rules per monitor, e.g. have default layouts per monitor. /* 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 * The use case for this is if the second monitor is vertical (i.e. rotated) then
@ -216,23 +216,23 @@
* used for the main monitor. E.g. normal vertical split for main monitor and * used for the main monitor. E.g. normal vertical split for main monitor and
* horizontal split for the second. * horizontal split for the second.
*/ */
#define MONITOR_RULES_PATCH 1 #define MONITOR_RULES_PATCH 0
/* Always display the the monocle-symbol as defined in config.h if the monocle-layout /* 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. * is activated. Do not display the number of open clients in the current tag.
* https://dwm.suckless.org/patches/monoclesymbol/ * https://dwm.suckless.org/patches/monoclesymbol/
*/ */
#define MONOCLESYMBOL_PATCH 1 #define MONOCLESYMBOL_PATCH 0
/* This patch allows you to move clients around in the stack and swap them with the master. /* This patch allows you to move clients around in the stack and swap them with the master.
* https://dwm.suckless.org/patches/movestack/ * https://dwm.suckless.org/patches/movestack/
*/ */
#define MOVESTACK_PATCH 1 #define MOVESTACK_PATCH 0
/* Removes the border when there is only one window visible. /* Removes the border when there is only one window visible.
* https://dwm.suckless.org/patches/noborder/ * https://dwm.suckless.org/patches/noborder/
*/ */
#define NOBORDER_PATCH 1 #define NOBORDER_PATCH 0
/* This patch makes it so dwm will only exit via quit() if no windows are open. /* 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. * This is to prevent you accidentally losing all your work.
@ -244,17 +244,17 @@
* monitor (default). * monitor (default).
* https://dwm.suckless.org/patches/pertag/ * https://dwm.suckless.org/patches/pertag/
*/ */
#define PERTAG_PATCH 1 #define PERTAG_PATCH 0
/* This controls whether or not to also store bar position on a per /* This controls whether or not to also store bar position on a per
* tag basis, or leave it as one bar per monitor. * tag basis, or leave it as one bar per monitor.
*/ */
#define PERTAGBAR_PATCH 1 #define PERTAGBAR_PATCH 0
/* This patch provides a way to move clients up and down inside the client list. /* This patch provides a way to move clients up and down inside the client list.
* https://dwm.suckless.org/patches/push/ * https://dwm.suckless.org/patches/push/
*/ */
#define PUSH_PATCH 1 #define PUSH_PATCH 0
/* This patch provides a way to move clients up and down inside the client list, /* 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 * but does not push up or down into the master area (except that it does not take
@ -268,60 +268,66 @@
* patch the mouse is warped to the nearest corner and you resize from there. * patch the mouse is warped to the nearest corner and you resize from there.
* https://dwm.suckless.org/patches/resizecorners/ * https://dwm.suckless.org/patches/resizecorners/
*/ */
#define RESIZECORNERS_PATCH 1 #define RESIZECORNERS_PATCH 0
/* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid. /* Adds a keyboard shortcut to restart dwm or alternatively by using kill -HUP dwmpid.
* Additionally dwm can quit cleanly by using kill -TERM dwmpid. * Additionally dwm can quit cleanly by using kill -TERM dwmpid.
* https://dwm.suckless.org/patches/restartsig/ * https://dwm.suckless.org/patches/restartsig/
*/ */
#define RESTARTSIG_PATCH 1 #define RESTARTSIG_PATCH 0
/* This patch let's you rotate through the stack using keyboard shortcuts. /* This patch let's you rotate through the stack using keyboard shortcuts.
* https://dwm.suckless.org/patches/rotatestack/ * https://dwm.suckless.org/patches/rotatestack/
*/ */
#define ROTATESTACK_PATCH 1 #define ROTATESTACK_PATCH 0
/* This patch aves size and position of every floating window before it is forced /* This patch aves 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 * into tiled mode. If the window is made floating again then the old dimensions
* will be restored. * will be restored.
* https://dwm.suckless.org/patches/save_floats/ * https://dwm.suckless.org/patches/save_floats/
*/ */
#define SAVEFLOATS_PATCH 1 #define SAVEFLOATS_PATCH 0
/* Allows restarting dwm without the dependency of an external script. /* Allows restarting dwm without the dependency of an external script.
* https://dwm.suckless.org/patches/selfrestart/ * https://dwm.suckless.org/patches/selfrestart/
*/ */
#define SELFRESTART_PATCH 1 #define SELFRESTART_PATCH 0
/* This patch allows border pixels to be changed during runtime. /* This patch allows border pixels to be changed during runtime.
* https://dwm.suckless.org/patches/setborderpx/ * https://dwm.suckless.org/patches/setborderpx/
*/ */
#define SETBORDERPX_PATCH 1 #define SETBORDERPX_PATCH 0
/* This patch draws and updates the statusbar on all monitors. /* This patch draws and updates the statusbar on all monitors.
* https://dwm.suckless.org/patches/statusallmons/ * https://dwm.suckless.org/patches/statusallmons/
*/ */
#define STATUSALLMONS_PATCH 1 #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. /* This patch adds configuration options for horizontal and vertical padding in the status bar.
* https://dwm.suckless.org/patches/statuspadding/ * https://dwm.suckless.org/patches/statuspadding/
*/ */
#define STATUSPADDING_PATCH 1 #define STATUSPADDING_PATCH 0
/* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. /* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags.
* https://dwm.suckless.org/patches/sticky/ * https://dwm.suckless.org/patches/sticky/
*/ */
#define STICKY_PATCH 1 #define STICKY_PATCH 0
/* The systray patch adds systray for the status bar. /* The systray patch adds systray for the status bar.
* https://dwm.suckless.org/patches/systray/ * https://dwm.suckless.org/patches/systray/
*/ */
#define SYSTRAY_PATCH 1 #define SYSTRAY_PATCH 0
/* Switch focus between the master and stack columns using a single keybinding. /* Switch focus between the master and stack columns using a single keybinding.
* https://dwm.suckless.org/patches/switchcol/ * https://dwm.suckless.org/patches/switchcol/
*/ */
#define SWITCHCOL_PATCH 1 #define SWITCHCOL_PATCH 0
/* By default dwm allow you to set application specific rules so that you can have your browser, /* 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 * for example, start up on tag 9 optionally on a given monitor when you open your browser it is
@ -334,17 +340,17 @@
* *
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-switchtag-6.2.diff
*/ */
#define SWITCHTAG_PATCH 1 #define SWITCHTAG_PATCH 0
/* Adds keyboard shortcuts to move all (or only floating) windows from one tag to another. /* Adds keyboard shortcuts to move all (or only floating) windows from one tag to another.
* https://dwm.suckless.org/patches/tagall/ * https://dwm.suckless.org/patches/tagall/
*/ */
#define TAGALL_PATCH 1 #define TAGALL_PATCH 0
/* This patch allows you to move all visible windows on a monitor to an adjacent monitor. /* 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 * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagallmon-6.2.diff
*/ */
#define TAGALLMON_PATCH 1 #define TAGALLMON_PATCH 0
/* This patch adds an option to place tags in rows like in many other window managers. /* This patch adds an option to place tags in rows like in many other window managers.
* https://dwm.suckless.org/patches/taggrid/ * https://dwm.suckless.org/patches/taggrid/
@ -357,7 +363,7 @@
* takes precedence over the onemaster tagintostack patch. * takes precedence over the onemaster tagintostack patch.
* https://dwm.suckless.org/patches/tagintostack/ * https://dwm.suckless.org/patches/tagintostack/
*/ */
#define TAGINTOSTACK_ALLMASTER_PATCH 1 #define TAGINTOSTACK_ALLMASTER_PATCH 0
/* This patch makes new clients attach into the stack area when you toggle a new tag into /* 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. * view. This means your master area will remain unchanged when toggling views.
@ -373,41 +379,41 @@
* while remaining in fullscreen. * while remaining in fullscreen.
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagmonfixfs-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagmonfixfs-6.2.diff
*/ */
#define TAGMONFIXFS_PATCH 1 #define TAGMONFIXFS_PATCH 0
/* This patch allows you to swap all visible windows on one monitor with those of an /* This patch allows you to swap all visible windows on one monitor with those of an
* adjacent monitor. * adjacent monitor.
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagswapmon-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-tagswapmon-6.2.diff
*/ */
#define TAGSWAPMON_PATCH 1 #define TAGSWAPMON_PATCH 0
/* Adds a new color scheme used by the (selected) window title in the bar. /* Adds a new color scheme used by the (selected) window title in the bar.
* https://dwm.suckless.org/patches/titlecolor/ * https://dwm.suckless.org/patches/titlecolor/
*/ */
#define TITLECOLOR_PATCH 1 #define TITLECOLOR_PATCH 0
/* This patch allows you to toggle fullscreen on and off using a single shortcut key. /* 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 * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-togglefullscreen-6.2.diff
*/ */
#define TOGGLEFULLSCREEN_PATCH 1 #define TOGGLEFULLSCREEN_PATCH 0
/* This patch resets isfloating on any visible windows that have it set. /* This patch resets isfloating on any visible windows that have it set.
* Optionally also applies a layout. * Optionally also applies a layout.
* https://dwm.suckless.org/patches/unfloatvisible/ * https://dwm.suckless.org/patches/unfloatvisible/
*/ */
#define UNFLOATVISIBLE_PATCH 1 #define UNFLOATVISIBLE_PATCH 0
/* This patch makes "urgent" windows have different colors. /* This patch makes "urgent" windows have different colors.
* https://dwm.suckless.org/patches/urgentborder/ * https://dwm.suckless.org/patches/urgentborder/
*/ */
#define URGENTBORDER_PATCH 1 #define URGENTBORDER_PATCH 0
/* This patch adds configurable gaps between windows differentiating between outer, inner, /* This patch adds configurable gaps between windows differentiating between outer, inner,
* horizontal and vertical gaps. * 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-6.2.diff
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-cfacts-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-vanitygaps-cfacts-6.2.diff
*/ */
#define VANITYGAPS_PATCH 1 #define VANITYGAPS_PATCH 0
/* Follow a window to the tag it is being moved to. /* Follow a window to the tag it is being moved to.
* https://dwm.suckless.org/patches/viewontag/ * https://dwm.suckless.org/patches/viewontag/
@ -427,25 +433,25 @@
* or Google-chrome "browser" vs "pop-up". * or Google-chrome "browser" vs "pop-up".
* https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-windowrolerule-6.2.diff * https://github.com/bakkeby/dwm-vanitygaps/blob/master/patches/dwm-windowrolerule-6.2.diff
*/ */
#define WINDOWROLERULE_PATCH 1 #define WINDOWROLERULE_PATCH 0
/* The winview patch allows switching the view to that of a given client from the all-window /* The winview patch allows switching the view to that of a given client from the all-window
* view (Mod-0) using a keyboard shortcut. * view (Mod-0) using a keyboard shortcut.
* http://dwm.suckless.org/patches/winview/ * http://dwm.suckless.org/patches/winview/
*/ */
#define WINVIEW_PATCH 1 #define WINVIEW_PATCH 0
/* Allows dwm to read colors from xrdb (.Xresources) during runtime. Compatible with /* Allows dwm to read colors from xrdb (.Xresources) during runtime. Compatible with
* the float border color, awesomebar, urgentborder and titlecolor patches. * the float border color, awesomebar, urgentborder and titlecolor patches.
* https://dwm.suckless.org/patches/xrdb/ * https://dwm.suckless.org/patches/xrdb/
*/ */
#define XRDB_PATCH 1 #define XRDB_PATCH 0
/* The zoomswap patch allows a master and a stack window to swap places /* The zoomswap patch allows a master and a stack window to swap places
* rather than every window on the screen changing position. * rather than every window on the screen changing position.
* https://dwm.suckless.org/patches/zoomswap/ * https://dwm.suckless.org/patches/zoomswap/
*/ */
#define ZOOMSWAP_PATCH 1 #define ZOOMSWAP_PATCH 0
/* Layouts */ /* Layouts */
@ -488,7 +494,7 @@
* A revamped, more flexible, and over-the-top version of the original flextile layout. * A revamped, more flexible, and over-the-top version of the original flextile layout.
* https://dwm.suckless.org/patches/flextile/ (original) * https://dwm.suckless.org/patches/flextile/ (original)
*/ */
#define FLEXTILE_DELUXE_LAYOUT 1 #define FLEXTILE_DELUXE_LAYOUT 0
/* Gappless grid layout. /* Gappless grid layout.
* https://dwm.suckless.org/patches/gaplessgrid/ * https://dwm.suckless.org/patches/gaplessgrid/
@ -513,9 +519,9 @@
/* The default tile layout. /* The default tile layout.
* This can be optionally disabled in favour of other layouts. * This can be optionally disabled in favour of other layouts.
*/ */
#define TILE_LAYOUT 0 #define TILE_LAYOUT 1
/* Monocle layout (default). /* Monocle layout (default).
* This can be optionally disabled in favour of other layouts. * This can be optionally disabled in favour of other layouts.
*/ */
#define MONOCLE_LAYOUT 0 #define MONOCLE_LAYOUT 1

Loading…
Cancel
Save