summaryrefslogtreecommitdiff
path: root/src/caelestia
diff options
context:
space:
mode:
Diffstat (limited to 'src/caelestia')
-rw-r--r--src/caelestia/parser.py1
-rw-r--r--src/caelestia/subcommands/scheme.py16
-rw-r--r--src/caelestia/utils/scheme.py3
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",