]> git.sur5r.net Git - i3/i3/blobdiff - src/config_directives.c
Optionally change i3bar color on focused output, implements #2020
[i3/i3] / src / config_directives.c
index cd0432fe06c31b6e2b068f416c1cebc77a30fba2..960dee5bfdde70f6aaa227f511f2230bb6b57478 100644 (file)
@@ -108,7 +108,7 @@ CFGFUN(font, const char *font) {
 }
 
 CFGFUN(binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command) {
-    configure_binding(bindtype, modifiers, key, release, border, whole_window, command, DEFAULT_BINDING_MODE);
+    configure_binding(bindtype, modifiers, key, release, border, whole_window, command, DEFAULT_BINDING_MODE, false);
 }
 
 /*******************************************************************************
@@ -116,12 +116,13 @@ CFGFUN(binding, const char *bindtype, const char *modifiers, const char *key, co
  ******************************************************************************/
 
 static char *current_mode;
+static bool current_mode_pango_markup;
 
 CFGFUN(mode_binding, const char *bindtype, const char *modifiers, const char *key, const char *release, const char *border, const char *whole_window, const char *command) {
-    configure_binding(bindtype, modifiers, key, release, border, whole_window, command, current_mode);
+    configure_binding(bindtype, modifiers, key, release, border, whole_window, command, current_mode, current_mode_pango_markup);
 }
 
-CFGFUN(enter_mode, const char *modename) {
+CFGFUN(enter_mode, const char *pango_markup, const char *modename) {
     if (strcasecmp(modename, DEFAULT_BINDING_MODE) == 0) {
         ELOG("You cannot use the name %s for your mode\n", DEFAULT_BINDING_MODE);
         exit(1);
@@ -129,6 +130,7 @@ CFGFUN(enter_mode, const char *modename) {
     DLOG("\t now in mode %s\n", modename);
     FREE(current_mode);
     current_mode = sstrdup(modename);
+    current_mode_pango_markup = (pango_markup != NULL);
 }
 
 CFGFUN(exec, const char *exectype, const char *no_startup_id, const char *command) {
@@ -531,8 +533,14 @@ CFGFUN(bar_color_single, const char *colorclass, const char *color) {
         current_bar.colors.background = sstrdup(color);
     else if (strcmp(colorclass, "separator") == 0)
         current_bar.colors.separator = sstrdup(color);
-    else
+    else if (strcmp(colorclass, "statusline") == 0)
         current_bar.colors.statusline = sstrdup(color);
+    else if (strcmp(colorclass, "focused_background") == 0)
+        current_bar.colors.focused_background = sstrdup(color);
+    else if (strcmp(colorclass, "focused_separator") == 0)
+        current_bar.colors.focused_separator = sstrdup(color);
+    else
+        current_bar.colors.focused_statusline = sstrdup(color);
 }
 
 CFGFUN(bar_status_command, const char *command) {