diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/caelestia/subcommands/scheme.py | 7 | ||||
| -rw-r--r-- | src/caelestia/utils/scheme.py | 14 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src/caelestia/subcommands/scheme.py b/src/caelestia/subcommands/scheme.py index 24d2af3..54de3f8 100644 --- a/src/caelestia/subcommands/scheme.py +++ b/src/caelestia/subcommands/scheme.py @@ -111,7 +111,10 @@ class List: modes = get_scheme_modes(scheme, flavour) if s.mode not in modes: s._mode = modes[0] - s._update_colours() - schemes[scheme][flavour] = s.colours + try: + s._update_colours() + schemes[scheme][flavour] = s.colours + except ValueError: + pass print(json.dumps(schemes)) diff --git a/src/caelestia/utils/scheme.py b/src/caelestia/utils/scheme.py index ac52ea7..1e95376 100644 --- a/src/caelestia/utils/scheme.py +++ b/src/caelestia/utils/scheme.py @@ -157,7 +157,19 @@ class Scheme: def _update_colours(self) -> None: if self.name == "dynamic": - self._colours = get_colours_for_image() + try: + self._colours = get_colours_for_image() + except FileNotFoundError: + if self.notify: + notify( + "-u", + "critical", + "Unable to set dynamic scheme", + "No wallpaper set. Please set a wallpaper via `caelestia wallpaper` before setting a dynamic scheme.", + ) + raise ValueError( + "No wallpaper set. Please set a wallpaper via `caelestia wallpaper` before setting a dynamic scheme." + ) else: self._colours = read_colours_from_file(self.get_colours_path()) |