diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-11 18:07:34 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-11 18:07:34 +1000 |
| commit | f43987ef2f55ede746c5cc37567f5e74ba515fb3 (patch) | |
| tree | 7c12e3a4a27c0e1808e6827ef343d4a2e457e36a /src/caelestia | |
| parent | internal: refactor scheme (diff) | |
| download | caelestia-cli-f43987ef2f55ede746c5cc37567f5e74ba515fb3.tar.gz caelestia-cli-f43987ef2f55ede746c5cc37567f5e74ba515fb3.tar.bz2 caelestia-cli-f43987ef2f55ede746c5cc37567f5e74ba515fb3.zip | |
feat: impl scheme command (partial)
Diffstat (limited to 'src/caelestia')
| -rw-r--r-- | src/caelestia/parser.py | 1 | ||||
| -rw-r--r-- | src/caelestia/subcommands/scheme.py | 16 | ||||
| -rw-r--r-- | src/caelestia/utils/scheme.py | 3 |
3 files changed, 18 insertions, 2 deletions
diff --git a/src/caelestia/parser.py b/src/caelestia/parser.py index eb8734e..9718938 100644 --- a/src/caelestia/parser.py +++ b/src/caelestia/parser.py @@ -61,7 +61,6 @@ def parse_args() -> (argparse.ArgumentParser, argparse.Namespace): # Create parser for scheme opts scheme_parser = command_parser.add_parser("scheme", help="manage the colour scheme") scheme_parser.set_defaults(cls=scheme.Command) - scheme_parser.add_argument("-g", "--get", action="store_true", help="print the current scheme") scheme_parser.add_argument("-r", "--random", action="store_true", help="switch to a random scheme") scheme_parser.add_argument("-n", "--name", choices=get_scheme_names(), help="the name of the scheme to switch to") scheme_parser.add_argument("-f", "--flavour", help="the flavour to switch to") diff --git a/src/caelestia/subcommands/scheme.py b/src/caelestia/subcommands/scheme.py index 37f9a2b..19e62db 100644 --- a/src/caelestia/subcommands/scheme.py +++ b/src/caelestia/subcommands/scheme.py @@ -1,5 +1,7 @@ from argparse import Namespace +from caelestia.utils.scheme import get_scheme + class Command: args: Namespace @@ -8,4 +10,16 @@ class Command: self.args = args def run(self) -> None: - pass + scheme = get_scheme() + + if self.args.random: + scheme.set_random() + elif self.args.name or self.args.flavour or self.args.mode: + if self.args.name: + scheme.name = self.args.name + if self.args.flavour: + scheme.flavour = self.args.flavour + if self.args.mode: + scheme.mode = self.args.mode + else: + print(scheme) diff --git a/src/caelestia/utils/scheme.py b/src/caelestia/utils/scheme.py index 79a0c21..4b05100 100644 --- a/src/caelestia/utils/scheme.py +++ b/src/caelestia/utils/scheme.py @@ -120,6 +120,9 @@ class Scheme: def _update_colours(self) -> None: 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})" + scheme_variants = [ "tonalspot", |