mirror of
https://github.com/caelestia-dots/cli.git
synced 2026-06-10 09:19:29 -05:00
internal: more lazy importing
Also fix some stuff with scheme checking
This commit is contained in:
@@ -2,7 +2,6 @@ import json
|
|||||||
import random
|
import random
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from caelestia.utils.material import get_colours_for_image
|
|
||||||
from caelestia.utils.notify import notify
|
from caelestia.utils.notify import notify
|
||||||
from caelestia.utils.paths import atomic_dump, scheme_data_dir, scheme_path
|
from caelestia.utils.paths import atomic_dump, scheme_data_dir, scheme_path
|
||||||
|
|
||||||
@@ -135,8 +134,8 @@ class Scheme:
|
|||||||
|
|
||||||
def set_random(self) -> None:
|
def set_random(self) -> None:
|
||||||
self._name = random.choice(get_scheme_names())
|
self._name = random.choice(get_scheme_names())
|
||||||
self._flavour = random.choice(get_scheme_flavours())
|
self._flavour = random.choice(get_scheme_flavours(self.name))
|
||||||
self._mode = random.choice(get_scheme_modes())
|
self._mode = random.choice(get_scheme_modes(self.name, self.flavour))
|
||||||
self.update_colours()
|
self.update_colours()
|
||||||
|
|
||||||
def update_colours(self) -> None:
|
def update_colours(self) -> None:
|
||||||
@@ -144,15 +143,19 @@ class Scheme:
|
|||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def _check_flavour(self) -> None:
|
def _check_flavour(self) -> None:
|
||||||
if self._flavour not in get_scheme_flavours(self.name):
|
flavours = get_scheme_flavours(self.name)
|
||||||
self._flavour = get_scheme_flavours()[0]
|
if self._flavour not in flavours:
|
||||||
|
self._flavour = flavours[0]
|
||||||
|
|
||||||
def _check_mode(self) -> None:
|
def _check_mode(self) -> None:
|
||||||
if self._mode not in get_scheme_modes(self.name, self.flavour):
|
modes = get_scheme_modes(self.name, self.flavour)
|
||||||
self._mode = get_scheme_modes()[0]
|
if self._mode not in modes:
|
||||||
|
self._mode = modes[0]
|
||||||
|
|
||||||
def _update_colours(self) -> None:
|
def _update_colours(self) -> None:
|
||||||
if self.name == "dynamic":
|
if self.name == "dynamic":
|
||||||
|
from caelestia.utils.material import get_colours_for_image
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self._colours = get_colours_for_image()
|
self._colours = get_colours_for_image()
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import tempfile
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from caelestia.utils.paths import c_state_dir, config_dir, templates_dir
|
from caelestia.utils.paths import c_state_dir, config_dir, templates_dir
|
||||||
@@ -91,6 +90,8 @@ def apply_hypr(conf: str) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def apply_discord(scss: str) -> None:
|
def apply_discord(scss: str) -> None:
|
||||||
|
import tempfile
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory("w") as tmp_dir:
|
with tempfile.TemporaryDirectory("w") as tmp_dir:
|
||||||
(Path(tmp_dir) / "_colours.scss").write_text(scss)
|
(Path(tmp_dir) / "_colours.scss").write_text(scss)
|
||||||
conf = subprocess.check_output(["sass", "-I", tmp_dir, templates_dir / "discord.scss"], text=True)
|
conf = subprocess.check_output(["sass", "-I", tmp_dir, templates_dir / "discord.scss"], text=True)
|
||||||
@@ -140,7 +141,7 @@ def apply_qt(colours: dict[str, str], mode: str) -> None:
|
|||||||
|
|
||||||
def apply_colours(colours: dict[str, str], mode: str) -> None:
|
def apply_colours(colours: dict[str, str], mode: str) -> None:
|
||||||
apply_terms(gen_sequences(colours))
|
apply_terms(gen_sequences(colours))
|
||||||
apply_hypr(gen_conf(colours)) # FIXME: LAGGY
|
apply_hypr(gen_conf(colours))
|
||||||
apply_discord(gen_scss(colours))
|
apply_discord(gen_scss(colours))
|
||||||
apply_spicetify(colours, mode)
|
apply_spicetify(colours, mode)
|
||||||
apply_fuzzel(colours)
|
apply_fuzzel(colours)
|
||||||
|
|||||||
Reference in New Issue
Block a user