From 8e210633caebe6542d7cd08453a8d840cfad1b60 Mon Sep 17 00:00:00 2001 From: eugen-keeper Date: Thu, 14 Aug 2025 02:30:50 +0000 Subject: [PATCH] GUACAMOLE-2120: Support VT100 escape codes sent for function keys and keypad. --- .../apache/guacamole/protocols/kubernetes.json | 5 +++++ .../org/apache/guacamole/protocols/ssh.json | 5 +++++ .../org/apache/guacamole/protocols/telnet.json | 5 +++++ .../src/main/frontend/src/translations/en.json | 15 +++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json index a6361d67e..243af7ba4 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json @@ -130,6 +130,11 @@ "name" : "backspace", "type" : "ENUM", "options" : [ "", "127", "8" ] + }, + { + "name" : "func-keys-and-keypad", + "type" : "ENUM", + "options" : [ "", "esc", "vt100" ] } ] }, diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json index a32197888..ce51f99db 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json @@ -130,6 +130,11 @@ "type" : "ENUM", "options" : [ "", "127", "8" ] }, + { + "name" : "func-keys-and-keypad", + "type" : "ENUM", + "options" : [ "", "esc", "vt100" ] + }, { "name" : "terminal-type", "type" : "ENUM", diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json index 68e488e9c..393bc5349 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json @@ -108,6 +108,11 @@ "type" : "ENUM", "options" : [ "", "127", "8" ] }, + { + "name" : "func-keys-and-keypad", + "type" : "ENUM", + "options" : [ "", "esc", "vt100" ] + }, { "name" : "terminal-type", "type" : "ENUM", diff --git a/guacamole/src/main/frontend/src/translations/en.json b/guacamole/src/main/frontend/src/translations/en.json index ef2173422..3b8f5a31d 100644 --- a/guacamole/src/main/frontend/src/translations/en.json +++ b/guacamole/src/main/frontend/src/translations/en.json @@ -517,6 +517,7 @@ "FIELD_HEADER_EXEC_COMMAND" : "Command (exec):", "FIELD_HEADER_FONT_NAME" : "Font name:", "FIELD_HEADER_FONT_SIZE" : "Font size:", + "FIELD_HEADER_FUNC_KEYS_AND_KEYPAD" : "Function keys and keypad behavior:", "FIELD_HEADER_HOSTNAME" : "Hostname:", "FIELD_HEADER_IGNORE_CERT" : "Ignore server certificate:", "FIELD_HEADER_NAMESPACE" : "Namespace:", @@ -566,6 +567,10 @@ "FIELD_OPTION_FONT_SIZE_96" : "96", "FIELD_OPTION_FONT_SIZE_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_ESC" : "ESC[n~", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_VT100" : "VT100", + "NAME" : "Kubernetes", "SECTION_HEADER_AUTHENTICATION" : "Authentication", @@ -755,6 +760,7 @@ "FIELD_HEADER_DISABLE_PASTE" : "Disable pasting from client:", "FIELD_HEADER_FONT_NAME" : "Font name:", "FIELD_HEADER_FONT_SIZE" : "Font size:", + "FIELD_HEADER_FUNC_KEYS_AND_KEYPAD" : "Function keys and keypad behavior:", "FIELD_HEADER_ENABLE_SFTP" : "Enable SFTP:", "FIELD_HEADER_HOST_KEY" : "Public host key (Base64):", "FIELD_HEADER_HOSTNAME" : "Hostname:", @@ -820,6 +826,10 @@ "FIELD_OPTION_FONT_SIZE_96" : "96", "FIELD_OPTION_FONT_SIZE_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_ESC" : "ESC[n~", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_VT100" : "VT100", + "FIELD_OPTION_TERMINAL_TYPE_ANSI" : "ansi", "FIELD_OPTION_TERMINAL_TYPE_EMPTY" : "", "FIELD_OPTION_TERMINAL_TYPE_LINUX" : "linux", @@ -854,6 +864,7 @@ "FIELD_HEADER_DISABLE_PASTE" : "Disable pasting from client:", "FIELD_HEADER_FONT_NAME" : "Font name:", "FIELD_HEADER_FONT_SIZE" : "Font size:", + "FIELD_HEADER_FUNC_KEYS_AND_KEYPAD" : "Function keys and keypad behavior:", "FIELD_HEADER_HOSTNAME" : "Hostname:", "FIELD_HEADER_LOGIN_FAILURE_REGEX" : "Login failure regular expression:", "FIELD_HEADER_LOGIN_SUCCESS_REGEX" : "Login success regular expression:", @@ -912,6 +923,10 @@ "FIELD_OPTION_FONT_SIZE_96" : "96", "FIELD_OPTION_FONT_SIZE_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_EMPTY" : "", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_ESC" : "ESC[n~", + "FIELD_OPTION_FUNC_KEYS_AND_KEYPAD_VT100" : "VT100", + "FIELD_OPTION_TERMINAL_TYPE_ANSI" : "ansi", "FIELD_OPTION_TERMINAL_TYPE_EMPTY" : "", "FIELD_OPTION_TERMINAL_TYPE_LINUX" : "linux",