diff options
| author | Ultrabug <ultrabug@gentoo.org> | 2014-11-24 19:49:01 +0100 |
|---|---|---|
| committer | Ultrabug <ultrabug@gentoo.org> | 2014-11-24 19:49:01 +0100 |
| commit | 5cbbf490f954f3d2f1ff342ffad976479449ec86 (patch) | |
| tree | a0d5efbb98888c9da8fc42f33e62f6ed203d05de | |
| parent | 06bdd754af5fa7d2cb9278bd481c6b67be7a5d8d (diff) | |
detect i3status.conf active and configured modules using the order parameter
| -rwxr-xr-x | py3status/__init__.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/py3status/__init__.py b/py3status/__init__.py index fa75c8b..395df9a 100755 --- a/py3status/__init__.py +++ b/py3status/__init__.py @@ -110,12 +110,12 @@ class I3status(Thread): # self.config = self.i3status_config_reader(i3status_config_path) - def valid_section_name(self, section_name): + def valid_config_param(self, param_name): """ Check if a given section name is a valid parameter for i3status. """ - valid_section_names = self.i3status_module_names + ['general', 'order'] - return section_name.split(' ')[0] in valid_section_names + valid_config_params = self.i3status_module_names + ['general', 'order'] + return param_name.split(' ')[0] in valid_config_params def i3status_config_reader(self, i3status_config_path): """ @@ -153,8 +153,6 @@ class I3status(Thread): section_name = line.split('{')[0].strip() if section_name not in config: config[section_name] = {} - if not self.valid_section_name(section_name): - config['py3_modules'].append(section_name) if '{' in line: in_section = True @@ -172,6 +170,10 @@ class I3status(Thread): if section_name == 'order': config[section_name].append(value) line = '}' + + # detect internal modules to be loaded dynamically + if not self.valid_config_param(value): + config['py3_modules'].append(value) else: config[section_name][key] = value @@ -243,9 +245,10 @@ class I3status(Thread): continue elif section_name == 'order': for module_name in conf: - tmpfile.write('order += "%s"\n' % module_name) + if self.valid_config_param(module_name): + tmpfile.write('order += "%s"\n' % module_name) tmpfile.write('\n') - elif self.valid_section_name(section_name): + elif self.valid_config_param(section_name): tmpfile.write('%s {\n' % section_name) for key, value in conf.items(): tmpfile.write(' %s = "%s"\n' % (key, value)) |
