diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2019-10-08 10:05:54 -0400 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2019-10-08 10:05:54 -0400 |
| commit | f3b050df7f0ef55a4b9f0bdf8a0b98679b858a3b (patch) | |
| tree | c5e64c5ed1cd1b7db5017efa1b667c0db19bba1b /src/theme.py | |
| parent | 8d62ee31f1bd1a737761d8765f3f5ca081b5f935 (diff) | |
Now i3 theme can be generated from config files.
Diffstat (limited to 'src/theme.py')
| -rw-r--r-- | src/theme.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/theme.py b/src/theme.py index 50a7ee0..fd1461a 100644 --- a/src/theme.py +++ b/src/theme.py @@ -56,7 +56,7 @@ def validate(theme): for key,value in value.items(): if not(key in ["focused","focused_inactive","unfocused","urgent","child_border"]): inv_key(key) - + def load(theme_file): """ Load a theme as a dict(): @@ -71,3 +71,39 @@ def load(theme_file): theme=configure(theme) validate(theme) return(theme) + +class ThemeBuilder: + def __init__(self): + self.theme={"meta": {"description": "Generated From i3-colors"}, + "window_colors":dict(), + "bar_colors":dict()} + def dump(self): + print(yaml.dump(self.theme)) + + def parse(self,line): + if re.match("client.*",line): + tokens=line.split() + key=tokens[0].replace("client.","") + tokens.pop(0) + subkeys=["border","background","text","indicator","child_border"] + self.theme["window_colors"][key]=dict() + for token in tokens: + self.theme["window_colors"][key][subkeys[0]]=token + subkeys.pop(0) + elif re.match(".*background.*",line): + self.theme["bar_colors"]["background"]=line.split()[1] + elif re.match(".*statusline.*",line): + self.theme["bar_colors"]["statusline"]=line.split()[1] + elif re.match(".*separator.*",line): + self.theme["bar_colors"]["separator"]=line.split()[1] + elif re.match(".*_workspace.*",line): + tokens=line.split() + key=tokens[0] + tokens.pop(0) + subkeys=["border","background","text"] + self.theme["bar_colors"][key]=dict() + for token in tokens: + self.theme["bar_colors"][key][subkeys[0]]=token + subkeys.pop(0) + + |
