diff options
| author | Andrew Guschin <saintruler@gmail.com> | 2021-05-10 14:44:07 +0400 |
|---|---|---|
| committer | Andrew Guschin <saintruler@gmail.com> | 2021-05-10 14:44:07 +0400 |
| commit | 40ce35bd2f379f2c30e51173752926f8c620ffd6 (patch) | |
| tree | d8bb4e1651758edd2af52e4b0a4b40c3c0f13c0e /.local/bin/lemonbar/chain.py | |
| parent | 2f6db370d4086eca956279ea41cd305b474f9caf (diff) | |
Changed window manager to bspwm and added custom config for lemonbar
Diffstat (limited to '.local/bin/lemonbar/chain.py')
| -rw-r--r-- | .local/bin/lemonbar/chain.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/.local/bin/lemonbar/chain.py b/.local/bin/lemonbar/chain.py new file mode 100644 index 0000000..c825501 --- /dev/null +++ b/.local/bin/lemonbar/chain.py @@ -0,0 +1,59 @@ +class ArrowModuleChain: + def __init__(self, right, background="#000000", capped_left=False, capped_right=False): + self.sep = "\uE0B0" if right else "\uE0B2" + + self.bg = background + self.right = right + + self.chain = [] + self.modules = [] + + self.capped_left = capped_left + self.capped_right = capped_right + + def append(self, module): + if len(self.modules) > 0: + self.chain.pop() + fg = module["background"] + bg = self.modules[-1]["background"] + else: + bg = module["background"] if self.capped_left else self.bg + fg = module["background"] + + if not self.right: + bg, fg = fg, bg + self.chain.append(self.get_sep(bg, fg)) + + bg = module["background"] if self.capped_right else self.bg + fg = module["background"] + + if not self.right: + bg, fg = fg, bg + + self.chain.append(self.get_sep(fg, bg)) + + self.modules.append(module) + + def extend(self, *modules): + for module in modules: + self.append(module) + + def get_sep(self, fg, bg): + return f"%{{F{fg}}}%{{B{bg}}}{self.sep}" + + def __str__(self): + result = [] + for i in range(len(self.modules)): + result.append(self.chain[i]) + + bg = self.modules[i]["background"] + fg = self.modules[i]["foreground"] + text = self.modules[i]["callback"]() + text = f"%{{F{fg}}}%{{B{bg}}} {text} " + result.append(text) + + if len(self.chain) > 0: + result.append(self.chain[-1]) + + return "".join(result) + |