From bdcb98eafcd92133a42aeb99d4bd8de844f22e9a Mon Sep 17 00:00:00 2001 From: pagedown Date: Mon, 28 Feb 2022 15:02:05 +0800 Subject: [PATCH 1/2] Use show_error kitten to display launch URL error messages --- kitty/boss.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kitty/boss.py b/kitty/boss.py index 54c054f65..3b181a9e9 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -2278,10 +2278,14 @@ class Boss: tab.remove_window(w) if failures: - with force_window_launch(needs_window_replaced): - from kittens.tui.operations import styled - spec = '\n '.join(styled(u, fg='red') for u in failures) - self.launch('--hold', '--type=os-window', kitty_exe(), '+runpy', fr'print("Unknown URL type, cannot open:\n\n ", {spec!r});') + from kittens.tui.operations import styled + spec = '\n '.join(styled(u, fg='red') for u in failures) + bdata = f"Unknown URL type, cannot open:\n\n {spec}".encode('utf-8') + special_window = SpecialWindow([kitty_exe(), '+kitten', 'show_error', '--title', 'Open URL Error'], bdata, 'Open URL Error') + if needs_window_replaced and tab is not None: + tab.new_special_window(special_window) + else: + self._new_os_window(special_window) clear_initial_window() needs_window_replaced = False if actions: From da5213346a3ed6167e841afba7e44f728de598d5 Mon Sep 17 00:00:00 2001 From: pagedown Date: Mon, 28 Feb 2022 15:02:16 +0800 Subject: [PATCH 2/2] show_error kitten: Use green color for closing tips --- kittens/show_error/main.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kittens/show_error/main.py b/kittens/show_error/main.py index 30be766b8..32edae400 100644 --- a/kittens/show_error/main.py +++ b/kittens/show_error/main.py @@ -23,11 +23,12 @@ def real_main(args: List[str]) -> None: cli_opts, items = parse_args(args[1:], OPTIONS, '', msg, 'hints', result_class=ErrorCLIOptions) error_message = sys.stdin.buffer.read().decode('utf-8') sys.stdin = open(os.ctermid()) - print(styled(cli_opts.title, fg_intense=True, fg='red', bold=True)) - print() + if cli_opts.title: + print(styled(cli_opts.title, fg_intense=True, fg='red', bold=True)) + print() print(error_message) print() - input('Press Enter to close.') + input('\x1b[1;32mPress Enter to close\x1b[m') def main(args: List[str]) -> None: