Also transmit key events when broadcasting

This commit is contained in:
Kovid Goyal
2020-12-01 14:11:50 +05:30
parent 457c292d3c
commit 34db18ea0a
4 changed files with 55 additions and 6 deletions

View File

@@ -9,7 +9,7 @@ from typing import Any, Dict, List, Optional, Tuple
from kitty.cli import parse_args
from kitty.cli_stub import BroadcastCLIOptions
from kitty.key_encoding import RELEASE, key_defs as K
from kitty.key_encoding import RELEASE, encode_key_event, key_defs as K
from kitty.rc.base import MATCH_TAB_OPTION, MATCH_WINDOW_OPTION
from kitty.remote_control import create_basic_command, encode_send
from kitty.typing import KeyEventType
@@ -48,12 +48,17 @@ class Broadcast(Handler):
if key_event.key is K['TAB']:
self.write_broadcast_text('\t')
self.write('\t')
return
elif key_event.key is K['BACKSPACE']:
self.write_broadcast_text('\177')
self.write('\x08\x1b[X')
return
elif key_event.key is K['ENTER']:
self.write_broadcast_text('\r')
self.print('')
return
ek = encode_key_event(key_event)
self.write_broadcast_data('kitty-key:' + ek)
def write_broadcast_text(self, text: str) -> None:
self.write_broadcast_data('base64:' + standard_b64encode(text.encode('utf-8')).decode('ascii'))

View File

@@ -302,7 +302,7 @@ class Loop:
def _on_apc(self, apc: str) -> None:
if apc.startswith('K'):
try:
k = decode_key_event(apc)
k = decode_key_event(apc[1:])
except Exception:
pass
else: