diff options
author | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2015-10-04 21:01:49 +0200 |
---|---|---|
committer | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2015-10-04 21:01:49 +0200 |
commit | 974f95702efbf1ae15882777d191c7fde99bfb9b (patch) | |
tree | b17acf7436a8b9de6c6d27aa4d82f01f6b8821aa /i3status.c | |
parent | f3125fdfded91144cb9f5b9ea3bf406598f17321 (diff) | |
parent | a13b2e7288e943359ccb37be86efb716efbe98c8 (diff) |
Merge pull request #68 from bsvh/master
Added support for lemonbar
Diffstat (limited to 'i3status.c')
-rw-r--r-- | i3status.c | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -163,11 +163,21 @@ static int parse_min_width(cfg_t *context, cfg_opt_t *option, const char *value, * */ static int valid_color(const char *value) { - if (strlen(value) != 7) - return 0; + const int len = strlen(value); + + if (output_format == O_LEMONBAR) { + /* lemonbar supports an optional alpha channel */ + if (len != strlen("#rrggbb") && len != strlen("#aarrggbb")) { + return 0; + } + } else { + if (len != strlen("#rrggbb")) { + return 0; + } + } if (value[0] != '#') return 0; - for (int i = 1; i < 7; ++i) { + for (int i = 1; i < len; ++i) { if (value[i] >= '0' && value[i] <= '9') continue; if (value[i] >= 'a' && value[i] <= 'f') @@ -501,6 +511,8 @@ int main(int argc, char *argv[]) { output_format = O_XMOBAR; else if (strcasecmp(output_str, "i3bar") == 0) output_format = O_I3BAR; + else if (strcasecmp(output_str, "lemonbar") == 0) + output_format = O_LEMONBAR; else if (strcasecmp(output_str, "term") == 0) output_format = O_TERM; else if (strcasecmp(output_str, "none") == 0) @@ -510,6 +522,9 @@ int main(int argc, char *argv[]) { const char *separator = cfg_getstr(cfg_general, "separator"); + /* lemonbar needs % to be escaped with another % */ + pct_mark = (output_format == O_LEMONBAR) ? "%%" : "%"; + // if no custom separator has been provided, use the default one if (strcasecmp(separator, "default") == 0) separator = get_default_separator(); |