diff --git a/README.md b/README.md index f3522441..dfb60251 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,7 @@ All configuration options are in `~/.config/caelestia/cli.json`. "enableTerm": true, "enableHypr": true, "enableDiscord": true, + "discordClient": "All", "enableSpicetify": true, "enablePandora": true, "enableFuzzel": true, diff --git a/src/caelestia/utils/theme.py b/src/caelestia/utils/theme.py index 472cfb8e..3f2c86bb 100644 --- a/src/caelestia/utils/theme.py +++ b/src/caelestia/utils/theme.py @@ -150,12 +150,18 @@ def apply_hypr(conf: str) -> None: @log_exception -def apply_discord(scss: str) -> None: +def apply_discord(scss: str, client: str) -> None: with tempfile.TemporaryDirectory("w") as tmp_dir: (Path(tmp_dir) / "_colours.scss").write_text(scss) conf = subprocess.check_output(["sass", "-I", tmp_dir, templates_dir / "discord.scss"], text=True) - for client in "Equicord", "Vencord", "BetterDiscord", "equibop", "vesktop", "legcord": + if client not in ("Equicord", "Vencord", "BetterDiscord", "equibop", "vesktop", "legcord"): + client = "All" + + if client == "All": + for target_client in ("Equicord", "Vencord", "BetterDiscord", "equibop", "vesktop", "legcord"): + atomic_write(config_dir / target_client / "themes/caelestia.theme.css", conf) + else: atomic_write(config_dir / client / "themes/caelestia.theme.css", conf) @@ -427,7 +433,8 @@ def check(key: str) -> bool: if check("enableHypr"): apply_hypr(gen_lua(colours) if is_lua_config() else gen_conf(colours)) if check("enableDiscord"): - apply_discord(gen_scss(colours)) + discord_client = cfg.get("discordClient", "All") + apply_discord(gen_scss(colours), discord_client) if check("enableSpicetify"): apply_spicetify(colours, mode) if check("enablePandora"):