You can change all colors which i3 uses to draw the window decorations.
*Syntax*:
--------------------------------------------------------------------------
-<colorclass> <border> <background> <text> <indicator> <decoration_border>
--------------------------------------------------------------------------
+--------------------------------------------------------------------
+<colorclass> <border> <background> <text> <indicator> <child_border>
+--------------------------------------------------------------------
Where colorclass can be one of:
Colors are in HTML hex format (#rrggbb), see the following example:
*Examples (default colors)*:
----------------------------------------------------------
-# class border backgr. text indicator decoration_border
+----------------------------------------------------------------------
+# class border backgr. text indicator child_border
client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577
client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
client.unfocused #333333 #222222 #888888 #292d2e #222222
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
client.background #ffffff
----------------------------------------------------------
+----------------------------------------------------------------------
Note that for the window decorations, the color around the child window is the
-"decoration_border", and "border" color is only the two thin lines around the
+"child_border", and "border" color is only the two thin lines around the
titlebar.
The indicator color is used for indicating where a new window will be opened.
color_t background;
color_t text;
color_t indicator;
- color_t decoration_border;
+ color_t child_border;
};
/**
CFGFUN(ipc_socket, const char *path);
CFGFUN(restart_state, const char *path);
CFGFUN(popup_during_fullscreen, const char *value);
-CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *decoration_border);
+CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *child_border);
CFGFUN(color_single, const char *colorclass, const char *color);
CFGFUN(floating_modifier, const char *modifiers);
CFGFUN(new_window, const char *windowtype, const char *border, const long width);
state COLOR_INDICATOR:
indicator = word
- -> COLOR_DECORATION_BORDER
+ -> COLOR_CHILD_BORDER
end
-> call cfg_color($colorclass, $border, $background, $text, NULL, NULL)
-state COLOR_DECORATION_BORDER:
- decoration_border = word
- -> call cfg_color($colorclass, $border, $background, $text, $indicator, $decoration_border)
+state COLOR_CHILD_BORDER:
+ child_border = word
+ -> call cfg_color($colorclass, $border, $background, $text, $indicator, $child_border)
end
-> call cfg_color($colorclass, $border, $background, $text, $indicator, NULL)
memset(&config, 0, sizeof(config));
/* Initialize default colors */
-#define INIT_COLOR(x, cborder, cbackground, ctext, cindicator) \
- do { \
- x.border = draw_util_hex_to_color(cborder); \
- x.background = draw_util_hex_to_color(cbackground); \
- x.text = draw_util_hex_to_color(ctext); \
- x.indicator = draw_util_hex_to_color(cindicator); \
- x.decoration_border = draw_util_hex_to_color(cbackground); \
+#define INIT_COLOR(x, cborder, cbackground, ctext, cindicator) \
+ do { \
+ x.border = draw_util_hex_to_color(cborder); \
+ x.background = draw_util_hex_to_color(cbackground); \
+ x.text = draw_util_hex_to_color(ctext); \
+ x.indicator = draw_util_hex_to_color(cindicator); \
+ x.child_border = draw_util_hex_to_color(cbackground); \
} while (0)
config.client.background = draw_util_hex_to_color("#000000");
config.client.background = draw_util_hex_to_color(color);
}
-CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *decoration_border) {
-#define APPLY_COLORS(classname) \
- do { \
- if (strcmp(colorclass, "client." #classname) == 0) { \
- config.client.classname.border = draw_util_hex_to_color(border); \
- config.client.classname.background = draw_util_hex_to_color(background); \
- config.client.classname.text = draw_util_hex_to_color(text); \
- if (indicator != NULL) { \
- config.client.classname.indicator = draw_util_hex_to_color(indicator); \
- } \
- if (decoration_border != NULL) { \
- config.client.classname.decoration_border = draw_util_hex_to_color(decoration_border); \
- } else { \
- config.client.classname.decoration_border = config.client.classname.background; \
- } \
- } \
+CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *child_border) {
+#define APPLY_COLORS(classname) \
+ do { \
+ if (strcmp(colorclass, "client." #classname) == 0) { \
+ config.client.classname.border = draw_util_hex_to_color(border); \
+ config.client.classname.background = draw_util_hex_to_color(background); \
+ config.client.classname.text = draw_util_hex_to_color(text); \
+ if (indicator != NULL) { \
+ config.client.classname.indicator = draw_util_hex_to_color(indicator); \
+ } \
+ if (child_border != NULL) { \
+ config.client.classname.child_border = draw_util_hex_to_color(child_border); \
+ } else { \
+ config.client.classname.child_border = config.client.classname.background; \
+ } \
+ } \
} while (0)
APPLY_COLORS(focused_inactive);
* rectangle because some childs are not freely resizable and we want
* their background color to "shine through". */
if (!(borders_to_hide & ADJ_LEFT_SCREEN_EDGE)) {
- draw_util_rectangle(conn, &(con->frame_buffer), p->color->decoration_border, 0, 0, br.x, r->height);
+ draw_util_rectangle(conn, &(con->frame_buffer), p->color->child_border, 0, 0, br.x, r->height);
}
if (!(borders_to_hide & ADJ_RIGHT_SCREEN_EDGE)) {
draw_util_rectangle(conn, &(con->frame_buffer),
- p->color->decoration_border, r->width + (br.width + br.x), 0,
+ p->color->child_border, r->width + (br.width + br.x), 0,
-(br.width + br.x), r->height);
}
if (!(borders_to_hide & ADJ_LOWER_SCREEN_EDGE)) {
draw_util_rectangle(conn, &(con->frame_buffer),
- p->color->decoration_border, br.x, r->height + (br.height +
- br.y),
+ p->color->child_border, br.x, r->height + (br.height + br.y),
r->width + br.width, -(br.height + br.y));
}
/* pixel border needs an additional line at the top */
if (p->border_style == BS_PIXEL && !(borders_to_hide & ADJ_UPPER_SCREEN_EDGE)) {
draw_util_rectangle(conn, &(con->frame_buffer),
- p->color->decoration_border, br.x, 0, r->width + br.width,
- br.y);
+ p->color->child_border, br.x, 0, r->width + br.width, br.y);
}
/* Highlight the side of the border at which the next window will be