From 40ff78b1c813fbd1f1dfbed14e41c675f67dff10 Mon Sep 17 00:00:00 2001 From: pagedown Date: Wed, 3 Nov 2021 12:55:05 +0800 Subject: [PATCH] Handle set colors exceptions --- kitty/boss.py | 6 +++++- kitty/rc/set_colors.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/kitty/boss.py b/kitty/boss.py index dac06045a..be01f48a8 100755 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -1875,7 +1875,11 @@ class Boss: except (Exception, SystemExit) as err: self.show_error('Invalid set_colors mapping', str(err)) return - payload = c.message_to_kitty(parse_rc_args([])[0], opts, items) + try: + payload = c.message_to_kitty(parse_rc_args([])[0], opts, items) + except (Exception, SystemExit) as err: + self.show_error('Failed to set colors', str(err)) + return c.response_from_kitty(self, self.active_window, PayloadGetter(c, payload if isinstance(payload, dict) else {})) def _move_window_to( diff --git a/kitty/rc/set_colors.py b/kitty/rc/set_colors.py index 336de1287..43ae219b1 100644 --- a/kitty/rc/set_colors.py +++ b/kitty/rc/set_colors.py @@ -5,6 +5,7 @@ import os from typing import TYPE_CHECKING, Dict, Iterable, Optional +from kitty.cli import emph from kitty.config import parse_config from kitty.fast_data_types import patch_color_profiles, Color @@ -95,6 +96,8 @@ this option, any color arguments are ignored and --configured and --all are impl if not opts.reset: try: final_colors = parse_colors(args) + except FileNotFoundError as err: + raise ParsingOfArgsFailed(f'The colors configuration file {emph(err.filename)} was not found.') from err except Exception as err: raise ParsingOfArgsFailed(str(err)) from err ans = {