summaryrefslogtreecommitdiff
path: root/src/caelestia/utils/scheme.py
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-12 15:48:02 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-12 15:48:02 +1000
commit194826efaa95480bfe1799f889ca5c02571b3e36 (patch)
treea4dd4879f99d1087ef8d51ea328f48e9c578f397 /src/caelestia/utils/scheme.py
parenttheme: better spicetify colours (diff)
downloadcaelestia-cli-194826efaa95480bfe1799f889ca5c02571b3e36.tar.gz
caelestia-cli-194826efaa95480bfe1799f889ca5c02571b3e36.tar.bz2
caelestia-cli-194826efaa95480bfe1799f889ca5c02571b3e36.zip
feat: generate dynamic schemes
Diffstat (limited to 'src/caelestia/utils/scheme.py')
-rw-r--r--src/caelestia/utils/scheme.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/caelestia/utils/scheme.py b/src/caelestia/utils/scheme.py
index c26d2f8..66cd697 100644
--- a/src/caelestia/utils/scheme.py
+++ b/src/caelestia/utils/scheme.py
@@ -1,7 +1,8 @@
import json
from pathlib import Path
-from caelestia.utils.paths import scheme_data_path, scheme_path
+from caelestia.utils.material import get_colours_for_image
+from caelestia.utils.paths import scheme_data_dir, scheme_path
class Scheme:
@@ -89,7 +90,7 @@ class Scheme:
return self._colours
def get_colours_path(self) -> Path:
- return (scheme_data_path / self.name / self.flavour / self.mode).with_suffix(".txt")
+ return (scheme_data_dir / self.name / self.flavour / self.mode).with_suffix(".txt")
def save(self) -> None:
scheme_path.parent.mkdir(parents=True, exist_ok=True)
@@ -118,7 +119,10 @@ class Scheme:
self._mode = get_scheme_modes()[0]
def _update_colours(self) -> None:
- self._colours = read_colours_from_file(self.get_colours_path())
+ if self.name == "dynamic":
+ self._colours = get_colours_for_image()
+ else:
+ self._colours = read_colours_from_file(self.get_colours_path())
def __str__(self) -> str:
return f"Scheme(name={self.name}, flavour={self.flavour}, mode={self.mode}, variant={self.variant})"
@@ -168,7 +172,7 @@ def get_scheme_names() -> list[str]:
global scheme_names
if scheme_names is None:
- scheme_names = [f.name for f in scheme_data_path.iterdir() if f.is_dir()]
+ scheme_names = [f.name for f in scheme_data_dir.iterdir() if f.is_dir()]
scheme_names.append("dynamic")
return scheme_names
@@ -182,7 +186,7 @@ def get_scheme_flavours() -> list[str]:
if name == "dynamic":
scheme_flavours = ["default", "alt1", "alt2"]
else:
- scheme_flavours = [f.name for f in (scheme_data_path / name).iterdir() if f.is_dir()]
+ scheme_flavours = [f.name for f in (scheme_data_dir / name).iterdir() if f.is_dir()]
return scheme_flavours
@@ -192,6 +196,9 @@ def get_scheme_modes() -> list[str]:
if scheme_modes is None:
scheme = get_scheme()
- scheme_modes = [f.stem for f in (scheme_data_path / scheme.name / scheme.flavour).iterdir() if f.is_file()]
+ if scheme.name == "dynamic":
+ scheme_modes = ["light", "dark"]
+ else:
+ scheme_modes = [f.stem for f in (scheme_data_dir / scheme.name / scheme.flavour).iterdir() if f.is_file()]
return scheme_modes