]> git.sur5r.net Git - i3/i3/commitdiff
introduce client.placeholder color
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 15 Dec 2013 10:42:40 +0000 (11:42 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 22 Dec 2013 20:52:49 +0000 (21:52 +0100)
docs/userguide
include/config.h
src/config.c
src/restore_layout.c

index 666b9623601160e27f9b14c37800a0fad3cf6e59..8758e7c559c29ffb3a036fc68b5d4a2557e28b47 100644 (file)
@@ -727,6 +727,9 @@ client.unfocused::
        A client which is not the focused one of its container.
 client.urgent::
        A client which has its urgency hint activated.
+client.placeholder::
+       Background and text color are used to draw placeholder window contents
+       (when restoring layouts). Border and indicator are ignored.
 
 You can also specify the color to be used to paint the background of the client
 windows. This color will be used to paint the window on top of which the client
@@ -749,6 +752,7 @@ client.focused          #4c7899 #285577 #ffffff #2e9ef4
 client.focused_inactive #333333 #5f676a #ffffff #484e50
 client.unfocused        #333333 #222222 #888888 #292d2e
 client.urgent           #2f343a #900000 #ffffff #900000
+client.placeholder      #000000 #0c0c0c #ffffff #000000
 ---------------------------------------------------------
 
 Note that for the window decorations, the color around the child window is the
index 4267dcfe3d335875452193578c5196029de9b983..bff8e63994b752b60dd895e1651a2ba69f14d26e 100644 (file)
@@ -180,6 +180,7 @@ struct Config {
         struct Colortriple focused_inactive;
         struct Colortriple unfocused;
         struct Colortriple urgent;
+        struct Colortriple placeholder;
     } client;
     struct config_bar {
         struct Colortriple focused;
index 337b83a84886bbbef4df14a16b90a60be9da3915..c030eb9a8ef93461bd5a73e90a3eaa2e1662e41d 100644 (file)
@@ -456,6 +456,9 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
     INIT_COLOR(config.client.unfocused, "#333333", "#222222", "#888888", "#292d2e");
     INIT_COLOR(config.client.urgent, "#2f343a", "#900000", "#ffffff", "#900000");
 
+    /* border and indicator color are ignored for placeholder contents */
+    INIT_COLOR(config.client.placeholder, "#000000", "#0c0c0c", "#ffffff", "#000000");
+
     /* the last argument (indicator color) is ignored for bar colors */
     INIT_COLOR(config.bar.focused, "#4c7899", "#285577", "#ffffff", "#000000");
     INIT_COLOR(config.bar.unfocused, "#333333", "#222222", "#888888", "#000000");
index 1a7dfaf88111a59ecaee5f9d45ffebdc93924d50..f868cf3e5839adebb94cf6ab3313040b65a3c2b9 100644 (file)
@@ -100,8 +100,8 @@ void restore_connect(void) {
 }
 
 static void update_placeholder_contents(placeholder_state *state) {
-    // TODO: introduce color configuration for placeholder windows.
-    xcb_change_gc(restore_conn, state->gc, XCB_GC_FOREGROUND, (uint32_t[]) { config.client.background });
+    xcb_change_gc(restore_conn, state->gc, XCB_GC_FOREGROUND,
+                  (uint32_t[]) { config.client.placeholder.background });
     xcb_poly_fill_rectangle(restore_conn, state->pixmap, state->gc, 1,
             (xcb_rectangle_t[]) { { 0, 0, state->rect.width, state->rect.height } });
 
@@ -109,7 +109,7 @@ static void update_placeholder_contents(placeholder_state *state) {
     xcb_flush(restore_conn);
     xcb_aux_sync(restore_conn);
 
-    set_font_colors(state->gc, config.client.focused.background, 0);
+    set_font_colors(state->gc, config.client.placeholder.text, config.client.placeholder.background);
 
     Match *swallows;
     int n = 0;
@@ -168,8 +168,7 @@ static void open_placeholder_window(Con *con) {
                 true,
                 XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK,
                 (uint32_t[]){
-                    // TODO: use the background color as background pixel to avoid flickering
-                    root_screen->white_pixel,
+                    config.client.placeholder.background,
                     XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_STRUCTURE_NOTIFY,
                 });
         /* Set the same name as was stored in the layout file. While perhaps