From 9a50dfc4b5de80e3981022de19b42e5eb69f8cec Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 19 Aug 2021 22:05:29 +0530 Subject: [PATCH] broadcast kitten: Allow broadcasting ctrl+c Fixes #3956 --- docs/changelog.rst | 2 ++ kittens/broadcast/main.py | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 93d529c40..b7ad3c894 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -28,6 +28,8 @@ To update |kitty|, :doc:`follow the instructions `. - Launch command: Allow specifying the OS window title +- broadcast kitten: Allow broadcasting :kbd:`ctrl+c` (:pull:`3956`) + 0.23.1 [2021-08-17] ---------------------- diff --git a/kittens/broadcast/main.py b/kittens/broadcast/main.py index 2be105d8c..4c137fb28 100644 --- a/kittens/broadcast/main.py +++ b/kittens/broadcast/main.py @@ -31,7 +31,7 @@ class Broadcast(Handler): self.payload['all'] = True def initialize(self) -> None: - self.print('Type the text to broadcast below, press', styled('Ctrl+c', fg='yellow'), 'to quit:') + self.print('Type the text to broadcast below, press', styled('Ctrl+Esc', fg='yellow'), 'to quit:') for x in self.initial_strings: self.write_broadcast_text(x) self.write(SAVE_CURSOR) @@ -51,7 +51,9 @@ class Broadcast(Handler): self.commit_line() def on_interrupt(self) -> None: - self.quit_loop(0) + self.write_broadcast_text('\x03') + self.line_edit.clear() + self.commit_line() def on_eot(self) -> None: self.write_broadcast_text('\x04') @@ -65,6 +67,9 @@ class Broadcast(Handler): self.line_edit.clear() self.write(SAVE_CURSOR) return + if key_event.matches('ctrl+esc'): + self.quit_loop(0) + return ek = encode_key_event(key_event) ek = standard_b64encode(ek.encode('utf-8')).decode('ascii')