diff --git a/scripts/parse_config.py b/scripts/parse_config.py new file mode 100644 index 0000000..4181451 --- /dev/null +++ b/scripts/parse_config.py @@ -0,0 +1,33 @@ +import configparser +import os +from pathlib import Path +from typing import Dict + +# We read a configuration file for university setup that is located +# in $XDG_CONFIG_HOME/university-setup/config.cfg +# We follow standard configparser procedure + + +def get_config_file(): + if 'XDG_CONFIG_HOME' in os.environ.keys(): + xdg_config_home = Path(os.environ['XDG_CONFIG_HOME']).resolve() + else: + xdg_config_home = Path('~/.config').resolve() + return xdg_config_home / 'university-setup' / 'config.cfg' + + +def get_config(section_name: str = 'Subprocess') -> Dict: + parser = configparser.RawConfigParser() + parser.read(get_config_file()) + if section_name in parser: + return dict(parser[section_name]) + else: + return {} + + +def terminal() -> str: + d = get_config('Subprocess') + if 'terminal' in d.keys(): + return d['terminal'] + else: + return 'i3-sensible-terminal' diff --git a/scripts/window_subprocess.py b/scripts/window_subprocess.py index 299569d..89fb84f 100644 --- a/scripts/window_subprocess.py +++ b/scripts/window_subprocess.py @@ -4,12 +4,14 @@ import subprocess from pathlib import Path import os +from parse_config import terminal + def edit(filepath: Path, rootpath: Path = None, env=os.environ, servername='tex lecture'): if not rootpath: rootpath = filepath.root subprocess.Popen([ - "i3-sensible-terminal", + terminal(), "-e", f"vim --servername {servername} --remote-silent {str(filepath)}" ], env=env, cwd=str(rootpath))