From 1ab61223c6acd30dac8151f01b9a5fde5f110034 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:03:51 +1000 Subject: scheme: dump scheme data when no args to list --- src/caelestia/subcommands/scheme.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/caelestia/subcommands') diff --git a/src/caelestia/subcommands/scheme.py b/src/caelestia/subcommands/scheme.py index b326e5d..24d2af3 100644 --- a/src/caelestia/subcommands/scheme.py +++ b/src/caelestia/subcommands/scheme.py @@ -1,6 +1,14 @@ +import json from argparse import Namespace -from caelestia.utils.scheme import get_scheme, get_scheme_flavours, get_scheme_modes, get_scheme_names, scheme_variants +from caelestia.utils.scheme import ( + Scheme, + get_scheme, + get_scheme_flavours, + get_scheme_modes, + get_scheme_names, + scheme_variants, +) from caelestia.utils.theme import apply_colours @@ -86,4 +94,24 @@ class List: else: print("\n".join(scheme_variants)) else: - print("No args given. Use --names, --flavours, --modes or --variants to list schemes") + current_scheme = get_scheme() + schemes = {} + for scheme in get_scheme_names(): + schemes[scheme] = {} + for flavour in get_scheme_flavours(scheme): + s = Scheme( + { + "name": scheme, + "flavour": flavour, + "mode": current_scheme.mode, + "variant": current_scheme.variant, + "colours": current_scheme.colours, + } + ) + modes = get_scheme_modes(scheme, flavour) + if s.mode not in modes: + s._mode = modes[0] + s._update_colours() + schemes[scheme][flavour] = s.colours + + print(json.dumps(schemes)) -- cgit v1.2.3-freya