dwm-float_border_color-6.1.diff (3594B)
1 URL: http://dwm.suckless.org/patches/historical/float_border_color 2 float_border_color2 allows you to specify a different border color for floating 3 windows. 4 5 Index: dwm/config.def.h 6 =================================================================== 7 --- dwm/config.def.h.orig 2014-02-09 15:24:13.708117011 +0100 8 +++ dwm/config.def.h 2014-02-09 15:24:13.700117011 +0100 9 @@ -8,6 +8,8 @@ 10 static const char selbordercolor[] = "#005577"; 11 static const char selbgcolor[] = "#005577"; 12 static const char selfgcolor[] = "#eeeeee"; 13 +static const char floatnormbordercolor[] = "#005577"; 14 +static const char floatselbordercolor[] = "#005577"; 15 static const unsigned int borderpx = 1; /* border pixel of windows */ 16 static const unsigned int snap = 32; /* snap pixel */ 17 static const Bool showbar = True; /* False means no bar */ 18 Index: dwm/dwm.c 19 =================================================================== 20 --- dwm/dwm.c.orig 2014-02-09 15:24:13.708117011 +0100 21 +++ dwm/dwm.c 2014-02-09 15:24:13.700117011 +0100 22 @@ -792,7 +792,10 @@ 23 detachstack(c); 24 attachstack(c); 25 grabbuttons(c, True); 26 - XSetWindowBorder(dpy, c->win, scheme[SchemeSel].border->rgb); 27 + if(c->isfloating) 28 + XSetWindowBorder(dpy, c->win, scheme[SchemeSel].floatborder->rgb); 29 + else 30 + XSetWindowBorder(dpy, c->win, scheme[SchemeSel].border->rgb); 31 setfocus(c); 32 } 33 else { 34 @@ -1040,7 +1043,10 @@ 35 36 wc.border_width = c->bw; 37 XConfigureWindow(dpy, w, CWBorderWidth, &wc); 38 - XSetWindowBorder(dpy, w, scheme[SchemeNorm].border->rgb); 39 + if(c->isfloating) 40 + XSetWindowBorder(dpy, w, scheme[SchemeNorm].floatborder->rgb); 41 + else 42 + XSetWindowBorder(dpy, w, scheme[SchemeNorm].border->rgb); 43 configure(c); /* propagates border_width, if size doesn't change */ 44 updatewindowtype(c); 45 updatesizehints(c); 46 @@ -1051,6 +1057,8 @@ 47 c->isfloating = c->oldstate = trans != None || c->isfixed; 48 if(c->isfloating) 49 XRaiseWindow(dpy, c->win); 50 + if(c->isfloating) 51 + XSetWindowBorder(dpy, w, scheme[SchemeNorm].floatborder->rgb); 52 attach(c); 53 attachstack(c); 54 XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend, 55 @@ -1522,9 +1530,11 @@ 56 cursor[CurResize] = drw_cur_create(drw, XC_sizing); 57 cursor[CurMove] = drw_cur_create(drw, XC_fleur); 58 /* init appearance */ 59 + scheme[SchemeNorm].floatborder = drw_clr_create(drw, floatnormbordercolor); 60 scheme[SchemeNorm].border = drw_clr_create(drw, normbordercolor); 61 scheme[SchemeNorm].bg = drw_clr_create(drw, normbgcolor); 62 scheme[SchemeNorm].fg = drw_clr_create(drw, normfgcolor); 63 + scheme[SchemeSel].floatborder = drw_clr_create(drw, floatselbordercolor); 64 scheme[SchemeSel].border = drw_clr_create(drw, selbordercolor); 65 scheme[SchemeSel].bg = drw_clr_create(drw, selbgcolor); 66 scheme[SchemeSel].fg = drw_clr_create(drw, selfgcolor); 67 @@ -1641,6 +1651,10 @@ 68 return; 69 selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed; 70 if(selmon->sel->isfloating) 71 + XSetWindowBorder(dpy, selmon->sel->win, scheme[SchemeSel].floatborder->rgb); 72 + else 73 + XSetWindowBorder(dpy, selmon->sel->win, scheme[SchemeSel].border->rgb); 74 + if(selmon->sel->isfloating) 75 resize(selmon->sel, selmon->sel->x, selmon->sel->y, 76 selmon->sel->w, selmon->sel->h, False); 77 arrange(selmon); 78 Index: dwm/drw.h 79 =================================================================== 80 --- dwm/drw.h.orig 2014-02-09 15:24:13.708117011 +0100 81 +++ dwm/drw.h 2014-02-09 15:24:13.700117011 +0100 82 @@ -20,6 +20,7 @@ 83 Clr *fg; 84 Clr *bg; 85 Clr *border; 86 + Clr *floatborder; 87 } ClrScheme; 88 89 typedef struct {