t* dwm + patches URI git clone git://git.codevoid.de/dwm-sdk DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit ec45f09b106c92fca977dee573daaa21ad96dd5f DIR parent 1dd05294044f86557a5e18102c8b469e1bce17a9 URI Author: Stefan Hagen <sh+git[at]codevoid[dot]de> Date: Thu, 15 Nov 2018 14:03:05 +0100 Update theme colors Diffstat: M config.def.h | 2 ++ M config.h | 52 +++++++++++++------------------ M dwm.c | 20 +++++++++++++++++--- 3 files changed, 40 insertions(+), 34 deletions(-) --- DIR diff --git a/config.def.h b/config.def.h t@@ -8,6 +8,8 @@ static const char normfgcolor[] = "#bbbbbb"; static const char selbordercolor[] = "#005577"; static const char selbgcolor[] = "#005577"; static const char selfgcolor[] = "#eeeeee"; +static const char floatnormbordercolor[] = "#005577"; +static const char floatselbordercolor[] = "#005577"; static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int gappx = 18; /* gap pixel between windows */ static const unsigned int snap = 32; /* snap pixel */ DIR diff --git a/config.h b/config.h t@@ -1,32 +1,24 @@ /* See LICENSE file for copyright and license details. */ /* appearance */ -//static const char font[] = "-misc-tamzenforpowerline-medium-r-normal--20-145-100-100-c-100-iso8859-1"; -static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; -//static const char font[] = "-windows-proggysquare-medium-r-normal--11-80-96-96-c-70-iso8859-1"; -static const char normbordercolor[] = "#333333"; -static const char normbgcolor[] = "#181818"; -static const char normfgcolor[] = "#999999"; -static const char selbordercolor[] = "#FF0000"; // window border color -static const char selbgcolor[] = "#181818"; // top bar background -static const char selfgcolor[] = "#eeeeee"; // top bar selected -static const unsigned int borderpx = 1; /* border pixel of windows */ -static const unsigned int gappx = 8; /* gap pixel between windows */ -static const unsigned int snap = 8; /* snap pixel */ -static const Bool showbar = True; /* False means no bar */ -static const Bool topbar = True; /* False means bottom bar */ -static const Bool extrabar = True; /* False means no extra bar */ - -static const char col_vdark[] = "#111111"; -static const char col_dark[] = "#333333"; -static const char col_norm[] = "#999999"; -static const char col_full[] = "#eeeeee"; - -static const char col_gray1[] = "#222222"; -static const char col_gray2[] = "#444444"; -static const char col_gray3[] = "#bbbbbb"; -static const char col_gray4[] = "#eeeeee"; -static const char col_cyan[] = "#005577"; +static const char font[] = "-xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-15"; +static const char normbgcolor[] = "#181818"; // top bar bg +static const char normfgcolor[] = "#999999"; // top bar fg +static const char selbgcolor[] = "#181818"; // top bar selection bg +static const char selfgcolor[] = "#EEEEEE"; // top bar selection fg +static const char normbordercolor[] = "#333333"; // window border bg +static const char selbordercolor[] = "#FF0000"; // window border fg +static const char floatnormbordercolor[] = "#181818"; // floating window border bg +static const char floatselbordercolor[] = "#FF0000"; // floating window border fg +static const unsigned int borderpx = 1; // border pixel of windows +static const unsigned int gappx = 8; // gap pixel between windows +static const unsigned int snap = 8; // snap pixel +static const Bool showbar = True; // False means no bar +static const Bool topbar = True; // False means bottom bar +static const Bool extrabar = True; // False means no extra bar + +/* dmenu options */ +#define DMENUOPTS "-fn", "Terminus:size=12" , "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor /* tagging */ static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; t@@ -37,16 +29,14 @@ static const Rule rules[] = { { "Firefox", NULL, NULL, 1 << 8, False, -1 }, }; -#define DMENUOPTS "-fn", "Terminus:size=12" , "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4 - /* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ static const Bool resizehints = False; /* True means respect size hints in tiled resizals */ static const Layout layouts[] = { /* symbol arrange function */ - { "TILE", tile }, /* first entry is default */ + { "[T]", tile }, /* first entry is default */ //{ "NULL", NULL }, /* no layout function means floating behavior */ //{ "MONO", monocle }, }; DIR diff --git a/dwm.c b/dwm.c t@@ -57,7 +57,7 @@ /* enums */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ -enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ +enum { ColBorder, ColFG, ColBG, ColBorderFloat, ColLast }; /* color */ enum { NetSupported, NetWMName, NetWMState, NetWMFullscreen, NetActiveWindow, NetWMWindowType, NetWMWindowTypeDialog, NetLast }; /* EWMH atoms */ t@@ -902,7 +902,10 @@ focus(Client *c) { detachstack(c); attachstack(c); grabbuttons(c, True); - XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]); + if(c->isfloating) + XSetWindowBorder(dpy, c->win, dc.sel[ColBorderFloat]); + else + XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]); setfocus(c); } else t@@ -1204,6 +1207,8 @@ manage(Window w, XWindowAttributes *wa) { c->isfloating = c->oldstate = trans != None || c->isfixed; if(c->isfloating) XRaiseWindow(dpy, c->win); + if(c->isfloating) + XSetWindowBorder(dpy, w, dc.norm[ColBorderFloat]); attach(c); attachstack(c); XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */ t@@ -1668,9 +1673,11 @@ setup(void) { dc.norm[ColBorder] = getcolor(normbordercolor); dc.norm[ColBG] = getcolor(normbgcolor); dc.norm[ColFG] = getcolor(normfgcolor); + dc.norm[ColBorderFloat] = getcolor(floatnormbordercolor); dc.sel[ColBorder] = getcolor(selbordercolor); dc.sel[ColBG] = getcolor(selbgcolor); dc.sel[ColFG] = getcolor(selfgcolor); + dc.sel[ColBorderFloat] = getcolor(floatselbordercolor); dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen)); dc.gc = XCreateGC(dpy, root, 0, NULL); XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); t@@ -1807,6 +1814,10 @@ togglefloating(const Arg *arg) { return; selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed; if(selmon->sel->isfloating) + XSetWindowBorder(dpy, selmon->sel->win, dc.sel[ColBorderFloat]); + else + XSetWindowBorder(dpy, selmon->sel->win, dc.sel[ColBorder]); + if(selmon->sel->isfloating) resize(selmon->sel, selmon->sel->x, selmon->sel->y, selmon->sel->w, selmon->sel->h, False); arrange(selmon); t@@ -1862,7 +1873,10 @@ unfocus(Client *c, Bool setfocus) { if(!c) return; grabbuttons(c, False); - XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]); + if(c->isfloating) + XSetWindowBorder(dpy, c->win, dc.norm[ColBorderFloat]); + else + XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]); if(setfocus) XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); }