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