diff --git a/config.def.h b/config.def.h
index 3a60ca7..5979f05 100644
--- a/config.def.h
+++ b/config.def.h
@@ -17,16 +17,24 @@ static const int showsystray        = 1;     /* 0 means no systray */
 static const int showbar            = 1;     /* 0 means no bar */
 static const int topbar             = 1;     /* 0 means bottom bar */
 static const char *fonts[]          = { "monospace:size=10" };
-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 *colors[][3]      = {
-  /*                fg         bg         border   */
-  [SchemeNorm]  = { col_gray3, col_gray1, col_gray2 },
-  [SchemeSel]   = { col_gray4, col_cyan,  col_cyan  },
-  [SchemeEmpty] = { col_empty, col_gray1, col_gray2 },
+static const char col_fg[]          = "#ffffff";
+static const char col_bg[]          = "#272822";
+static const char col_bd[]          = "#272822";
+static const char col_fg_empty[]    = "#404040";
+static const char col_fg_layout[]   = "#909090";
+static const char col_fg_urgent[]   = "#ffffff";
+static const char col_bg_urgent[]   = "#770000";
+static const char col_bd_urgent[]   = "#770000";
+static const char col_fg_sel[]      = "#ffffff";
+static const char col_bg_sel[]      = "#005577";
+static const char col_bd_sel[]      = "#ffffff";
+static const char *colors[][3] = {
+  /*                 fg             bg             border   */
+  [SchemeNorm]   = { col_fg,        col_bg,        col_bd },
+  [SchemeSel]    = { col_fg_sel,    col_bg_sel,    col_bd_sel },
+  [SchemeEmpty]  = { col_fg_empty,  col_bg,        col_bd },
+  [SchemeLayout] = { col_fg_layout, col_bg,        col_bd },
+  [SchemeUrgent] = { col_fg_urgent, col_bg_urgent, col_bd_urgent },
 };
 
 typedef struct {
diff --git a/dwm.c b/dwm.c
index 8a200d5..626eab3 100644
--- a/dwm.c
+++ b/dwm.c
@@ -81,7 +81,7 @@
 
 /* enums */
 enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
-enum { SchemeNorm, SchemeSel }; /* color schemes */
+enum { SchemeNorm, SchemeSel, SchemeEmpty, SchemeLayout, SchemeUrgent }; /* color schemes */
 enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
   NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation, NetSystemTrayOrientationHorz,
   NetWMFullscreen, NetActiveWindow, NetWMWindowType,
@@ -1029,12 +1029,12 @@ drawbar(Monitor *m)
   x = 0;
   for (i = 0; i < LENGTH(tags); i++) {
     w = TEXTW(tags[i]);
-    drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
-    drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
+    drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : urg & 1 << i ? SchemeUrgent : occ & 1 << i ? SchemeNorm : SchemeEmpty ]);
+    drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], 0);
     x += w;
   }
   w = blw = TEXTW(m->ltsymbol);
-  drw_setscheme(drw, scheme[SchemeNorm]);
+  drw_setscheme(drw, scheme[SchemeLayout]);
   x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
 
   if ((w = m->ww - tw - stw - x) > bh) {
