summaryrefslogtreecommitdiff
path: root/i3status.c
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@users.noreply.github.com>2015-10-04 21:01:49 +0200
committerMichael Stapelberg <stapelberg@users.noreply.github.com>2015-10-04 21:01:49 +0200
commit974f95702efbf1ae15882777d191c7fde99bfb9b (patch)
treeb17acf7436a8b9de6c6d27aa4d82f01f6b8821aa /i3status.c
parentf3125fdfded91144cb9f5b9ea3bf406598f17321 (diff)
parenta13b2e7288e943359ccb37be86efb716efbe98c8 (diff)
Merge pull request #68 from bsvh/master
Added support for lemonbar
Diffstat (limited to 'i3status.c')
-rw-r--r--i3status.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/i3status.c b/i3status.c
index 000584a..462721b 100644
--- a/i3status.c
+++ b/i3status.c
@@ -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();