dwm

Extremely fast, small, and dynamic window manager for X
git clone git://git.janpasierb.com/dwm.git
Log | Files | Refs | README | LICENSE

commit 2e0c767d74da024c3cd4dbd524e1364039704451
parent a5379e901c909407f991302499c9d7522cb6d00d
Author: Anselm R. Garbe <arg@10kloc.org>
Date:   Thu, 24 Aug 2006 12:04:56 +0200

3->4 colors
Diffstat:
Mconfig.arg.h | 7++++---
Mconfig.default.h | 7++++---
Mconfig.mk | 2+-
Mdraw.c | 20+++++++-------------
Mdwm.h | 5++---
Mmain.c | 7++++---
6 files changed, 22 insertions(+), 26 deletions(-)

diff --git a/config.arg.h b/config.arg.h @@ -8,9 +8,10 @@ const char *tags[] = { "work", "net", "fnord", NULL }; #define DEFMODE dotile /* dofloat */ #define FONT "-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*" -#define BGCOLOR "#666699" -#define FGCOLOR "#eeeeee" -#define BORDERCOLOR "#9999CC" +#define NORMBGCOLOR "#666699" +#define NORMFGCOLOR "#eeeeee" +#define SELBGCOLOR "#eeeeee" +#define SELFGCOLOR "#000088" #define MODKEY Mod1Mask #define MASTERW 60 /* percent */ diff --git a/config.default.h b/config.default.h @@ -8,9 +8,10 @@ const char *tags[] = { "1", "2", "3", "4", "5", NULL }; #define DEFMODE dotile /* dofloat */ #define FONT "fixed" -#define BGCOLOR "#666699" -#define FGCOLOR "#eeeeee" -#define BORDERCOLOR "#9999CC" +#define NORMBGCOLOR "#666699" +#define NORMFGCOLOR "#eeeeee" +#define SELBGCOLOR "#eeeeee" +#define SELFGCOLOR "#666699" #define MODKEY Mod1Mask #define MASTERW 60 /* percent */ diff --git a/config.mk b/config.mk @@ -1,5 +1,5 @@ # dwm version -VERSION = 1.0 +VERSION = 1.1 # Customize below to fit your system diff --git a/draw.c b/draw.c @@ -22,16 +22,15 @@ textnw(const char *text, unsigned int len) } static void -drawtext(const char *text, Bool invert, Bool highlight) +drawtext(const char *text, unsigned int colidx, Bool highlight) { int x, y, w, h; static char buf[256]; unsigned int len, olen; - XGCValues gcv; XPoint points[5]; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; - XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg); + XSetForeground(dpy, dc.gc, dc.bg[colidx]); XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); points[0].x = dc.x; points[0].y = dc.y; @@ -43,7 +42,7 @@ drawtext(const char *text, Bool invert, Bool highlight) points[3].y = 0; points[4].x = 0; points[4].y = -(dc.h - 1); - XSetForeground(dpy, dc.gc, dc.border); + XSetForeground(dpy, dc.gc, dc.fg[colidx]); XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious); if(!text) @@ -74,15 +73,10 @@ drawtext(const char *text, Bool invert, Bool highlight) if(w > dc.w) return; /* too long */ - gcv.foreground = invert ? dc.bg : dc.fg; - gcv.background = invert ? dc.fg : dc.bg; - if(dc.font.set) { - XChangeGC(dpy, dc.gc, GCForeground | GCBackground, &gcv); + if(dc.font.set) XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); - } else { - gcv.font = dc.font.xfont->fid; - XChangeGC(dpy, dc.gc, GCForeground | GCBackground | GCFont, &gcv); + XSetFont(dpy, dc.gc, dc.font.xfont->fid); XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); } if(highlight) { @@ -157,11 +151,11 @@ drawtitle(Client *c) if(c == sel && issel) { drawstatus(); XUnmapWindow(dpy, c->twin); - XSetWindowBorder(dpy, c->win, dc.fg); + XSetWindowBorder(dpy, c->win, dc.fg[1]); return; } - XSetWindowBorder(dpy, c->win, dc.bg); + XSetWindowBorder(dpy, c->win, dc.bg[0]); XMapWindow(dpy, c->twin); dc.x = dc.y = 0; dc.w = c->tw; diff --git a/dwm.h b/dwm.h @@ -36,9 +36,8 @@ typedef struct { typedef struct { /* draw context */ int x, y, w, h; - unsigned long bg; - unsigned long fg; - unsigned long border; + unsigned long bg[2]; + unsigned long fg[2]; Drawable drawable; Fnt font; GC gc; diff --git a/main.c b/main.c @@ -121,9 +121,10 @@ setup() seltag[0] = True; /* style */ - dc.bg = getcolor(BGCOLOR); - dc.fg = getcolor(FGCOLOR); - dc.border = getcolor(BORDERCOLOR); + dc.bg[0] = getcolor(NORMBGCOLOR); + dc.fg[0] = getcolor(NORMFGCOLOR); + dc.bg[1] = getcolor(SELBGCOLOR); + dc.fg[1] = getcolor(SELFGCOLOR); setfont(FONT); sx = sy = 0;