diff --git a/pywal/__main__.py b/pywal/__main__.py index ecfd05c..9ac8092 100644 --- a/pywal/__main__.py +++ b/pywal/__main__.py @@ -164,8 +164,7 @@ def process_args(args): if not args.e: reload.env(tty_reload=not args.t) - if args.o: - util.disown([args.o]) + reload.external_script(args.o) if not args.e: reload.oomox(args.g) diff --git a/pywal/reload.py b/pywal/reload.py index 7869d0b..6bda275 100644 --- a/pywal/reload.py +++ b/pywal/reload.py @@ -7,7 +7,7 @@ import shutil import subprocess import sys -from .settings import CACHE_DIR, MODULE_DIR, OS +from .settings import CACHE_DIR, MODULE_DIR, OS, CONFIG from . import util @@ -88,6 +88,15 @@ def colors(cache_dir=CACHE_DIR): print("".join(util.read_file(sequences)), end="") +def external_script(cmd_hook): + """Launch an external process after pywal.""" + if cmd_hook: + util.disown([cmd_hook]) + + if CONFIG.get("general", "cmd_hook"): + util.disown(CONFIG.get("general", "cmd_hook").split()) + + def env(xrdb_file=None, tty_reload=True): """Reload environment.""" xrdb(xrdb_file) diff --git a/pywal/settings.py b/pywal/settings.py index 4bbc2b5..4590e46 100644 --- a/pywal/settings.py +++ b/pywal/settings.py @@ -17,7 +17,6 @@ import platform __version__ = "1.3.3" __cache_version__ = "1.0.0" - HOME = os.getenv("HOME", os.getenv("USERPROFILE")) CACHE_DIR = os.path.join(HOME, ".cache", "wal") MODULE_DIR = os.path.dirname(__file__)