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')