From 0b4123fcc3763d93563130450b7a30d431fb8de0 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 1 Sep 2026 10:33:57 -0400 Subject: [PATCH] Add keystrokes for nodeconsole -tv This allows ctrl-alt and windows key. --- confluent_client/bin/nodeconsole | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/confluent_client/bin/nodeconsole b/confluent_client/bin/nodeconsole index bc2b81c7..a6c927da 100755 --- a/confluent_client/bin/nodeconsole +++ b/confluent_client/bin/nodeconsole @@ -158,6 +158,7 @@ class SpecialKeys(enum.Enum): HOME = 0xff50 END = 0xff57 ESC = 0xff1b + WIN = 0xffeb extratextbynode = {} focustext = '' @@ -374,10 +375,31 @@ class InputHandler: await relay_keypresses(self.buffer[1:]) self.reset_input_context() if self.buffer == '\x05c': - set_extra_text('Commands: q:exit, p:power, f:input focus, b:sysrq, ^c:abort') + set_extra_text('Commands: q:exit, p:power, f:input focus, b:sysrq, k:keystroke, ^c:abort') self.seqtimeout = asyncio.create_task(self.timeout_sequence(10)) # extend timeout to navigate options return - if '\x05cb' == self.buffer: # send break + elif self.buffer == '\x05ck': + set_extra_text('Keystrokes: d: Ctrl-Alt-Delete, 1: Ctrl-Alt-F1, 2: Ctrl-Alt-F2, 3: Ctrl-Alt-F3, 4: Ctrl-Alt-F4, w: Win) + self.seqtimeout = asyncio.create_task(self.timeout_sequence(10)) # extend timeout to navigate options + elif self.buffer == '\x05ck1': + await relay_keypresses(SpecialKeys.F1, modifiers=[SpecialKeys.CTRL, SpecialKeys.ALT]) # Ctrl-Alt-F1 + self.reset_input_context() + elif self.buffer == '\x05ck2': + await relay_keypresses(SpecialKeys.F2, modifiers=[SpecialKeys.CTRL, SpecialKeys.ALT]) # Ctrl-Alt-F2 + self.reset_input_context() + elif self.buffer == '\x05ck3': + await relay_keypresses(SpecialKeys.F3, modifiers=[SpecialKeys.CTRL, SpecialKeys.ALT]) # Ctrl-Alt-F3 + self.reset_input_context() + elif self.buffer == '\x05ck4': + await relay_keypresses(SpecialKeys.F4, modifiers=[SpecialKeys.CTRL, SpecialKeys.ALT]) # Ctrl-Alt-F4 + self.reset_input_context() + elif self.buffer == '\x05ckd': + await relay_keypresses(SpecialKeys.DELETE, modifiers=[SpecialKeys.CTRL, SpecialKeys.ALT]) # Ctrl-Alt-Delete + self.reset_input_context() + elif self.buffer == '\x05ckw': + await relay_keypresses(SpecialKeys.WIN) # Ctrl-Alt-Win + self.reset_input_context() + elif '\x05cb' == self.buffer: # send break # but we need to know more, so wait for the next key set_extra_text('Enter sysrq command key (or to abort)') self.seqtimeout = asyncio.create_task(self.timeout_sequence())