Hello,
I propose this small change. It allows to use separate border colors for
floating windows. If needed I will send a screenshot that shows the use of it:
tabbed windows match without a visible border, but the floating windows have
the borders. Perhaps, a separate borderwidth setting could be also useful.
The patch is attached.
--
Stanislav
diff -r 7f8c81c4bc9a client.c
--- a/client.c Tue Jun 19 09:08:15 2007 +0200
+++ b/client.c Tue Jun 26 13:04:03 2007 +0400
@@ -139,7 +139,10 @@ focus(Client *c) {
for(c = stack; c && !isvisible(c); c = c->snext);
if(sel && sel != c) {
grabbuttons(sel, False);
- XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
+ if(sel->isfloating)
+ XSetWindowBorder(dpy, sel->win, dc.norm[ColBorderFloat]);
+ else
+ XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
}
if(c) {
detachstack(c);
@@ -151,7 +154,10 @@ focus(Client *c) {
if(!selscreen)
return;
if(c) {
- 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]);
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
}
else
diff -r 7f8c81c4bc9a config.arg.h
--- a/config.arg.h Tue Jun 19 09:08:15 2007 +0200
+++ b/config.arg.h Tue Jun 26 12:35:36 2007 +0400
@@ -10,6 +10,8 @@
#define SELBORDERCOLOR "#8c8"
#define SELBGCOLOR "#555"
#define SELFGCOLOR "#fff"
+#define FLOATNORMBORDERCOLOR NORMBORDERCOLOR
+#define FLOATSELBORDERCOLOR SELBORDERCOLOR
/* tagging */
#define TAGS \
diff -r 7f8c81c4bc9a config.default.h
--- a/config.default.h Tue Jun 19 09:08:15 2007 +0200
+++ b/config.default.h Tue Jun 26 12:35:50 2007 +0400
@@ -10,6 +10,8 @@
#define SELBORDERCOLOR "#ff0000"
#define SELBGCOLOR "#006699"
#define SELFGCOLOR "#ffffff"
+#define FLOATNORMBORDERCOLOR NORMBORDERCOLOR
+#define FLOATSELBORDERCOLOR SELBORDERCOLOR
/* tagging */
#define TAGS \
diff -r 7f8c81c4bc9a dwm.h
--- a/dwm.h Tue Jun 19 09:08:15 2007 +0200
+++ b/dwm.h Tue Jun 26 12:30:35 2007 +0400
@@ -37,7 +37,7 @@
enum { BarTop, BarBot, BarOff }; /* bar position */
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
-enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
+enum { ColBorder, ColFG, ColBG, ColBorderFloat, ColLast }; /* color */
enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMState, WMLast }; /* default atoms */
diff -r 7f8c81c4bc9a main.c
--- a/main.c Tue Jun 19 09:08:15 2007 +0200
+++ b/main.c Tue Jun 26 12:30:35 2007 +0400
@@ -174,9 +174,11 @@ setup(void) {
dc.norm[ColBorder] = initcolor(NORMBORDERCOLOR);
dc.norm[ColBG] = initcolor(NORMBGCOLOR);
dc.norm[ColFG] = initcolor(NORMFGCOLOR);
+ dc.norm[ColBorderFloat] = initcolor(FLOATNORMBORDERCOLOR);
dc.sel[ColBorder] = initcolor(SELBORDERCOLOR);
dc.sel[ColBG] = initcolor(SELBGCOLOR);
dc.sel[ColFG] = initcolor(SELFGCOLOR);
+ dc.sel[ColBorderFloat] = initcolor(FLOATSELBORDERCOLOR);
initfont(FONT);
/* geometry */
sx = sy = 0;