Skip to content

Commit 045a48a

Browse files
author
Ihor Yalosovetskyi
committed
rc01
1 parent 18dad11 commit 045a48a

1 file changed

Lines changed: 10 additions & 35 deletions

File tree

supervisor/shared/usb/host_keyboard.c

Lines changed: 10 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,11 @@ struct keycode_mapper {
8080

8181
// https://learn.microsoft.com/ru-ru/windows/console/console-virtual-terminal-sequences
8282
// https://aperiodic.net/phil/archives/Geekery/term-function-keys/
83-
#define F1 "\eOP"
84-
#define F2 "\eOQ"
85-
#define F3 "\eOR"
86-
#define F4 "\eOS"
83+
// https://www.microfocus.com/documentation/rumba/desktop951/RumbaSystemAdminGuide/GUID-5F92BA7F-107A-4101-B4E7-E0FC73F0CD99.html
84+
#define F1 "\e[11~"
85+
#define F2 "\e[12~"
86+
#define F3 "\e[13~"
87+
#define F4 "\e[14~"
8788
#define F5 "\e[15~"
8889
#define F6 "\e[17~"
8990
#define F7 "\e[18~"
@@ -117,37 +118,11 @@ STATIC struct keycode_mapper keycode_to_ascii[] = {
117118
{ HID_KEY_KEYPAD_DIVIDE, HID_KEY_KEYPAD_DECIMAL, 0, 0, "/*-+\n1234567890." },
118119

119120
// { HID_KEY_ARROW_RIGHT, HID_KEY_ARROW_UP, 0, FLAG_STRING, CURSOR_RIGHT SEP CURSOR_LEFT SEP CURSOR_DOWN SEP CURSOR_UP },
121+
{ HID_KEY_INSERT, HID_KEY_ARROW_UP, 0, FLAG_STRING, CURSOR_INS SEP CURSOR_HOME SEP CURSOR_PGUP SEP CURSOR_DEL SEP CURSOR_END SEP CURSOR_PGDN SEP CURSOR_RIGHT SEP CURSOR_LEFT SEP CURSOR_DOWN SEP CURSOR_UP },
120122
{ HID_KEY_PAUSE, HID_KEY_PAUSE, 0x1a, 0, },
121-
{ HID_KEY_PAGE_DOWN, HID_KEY_PAGE_DOWN, 0, FLAG_STRING, CURSOR_PGDN },
122-
{ HID_KEY_PAGE_UP, HID_KEY_PAGE_UP, 0, FLAG_STRING, CURSOR_PGUP },
123-
{ HID_KEY_HOME, HID_KEY_HOME, 0, FLAG_STRING, CURSOR_HOME },
124-
{ HID_KEY_END, HID_KEY_END, 0, FLAG_STRING, CURSOR_END },
125-
{ HID_KEY_INSERT, HID_KEY_INSERT, 0, FLAG_STRING, CURSOR_INS },
126-
{ HID_KEY_DELETE, HID_KEY_DELETE, 0, FLAG_STRING, CURSOR_DEL },
127-
128-
{ HID_KEY_F1, HID_KEY_F1, 0, FLAG_STRING, F1 },
129-
{ HID_KEY_F2, HID_KEY_F2, 0, FLAG_STRING, F2 },
130-
{ HID_KEY_F3, HID_KEY_F3, 0, FLAG_STRING, F3 },
131-
{ HID_KEY_F4, HID_KEY_F4, 0, FLAG_STRING, F4 },
132-
{ HID_KEY_F5, HID_KEY_F5, 0, FLAG_STRING, F5 },
133-
{ HID_KEY_F6, HID_KEY_F6, 0, FLAG_STRING, F6 },
134-
{ HID_KEY_F7, HID_KEY_F7, 0, FLAG_STRING, F7 },
135-
{ HID_KEY_F8, HID_KEY_F8, 0, FLAG_STRING, F8 },
136-
{ HID_KEY_F9, HID_KEY_F9, 0, FLAG_STRING, F9 },
137-
{ HID_KEY_F10, HID_KEY_F10, 0, FLAG_STRING, F10 },
138-
{ HID_KEY_F11, HID_KEY_F11, 0, FLAG_STRING, F11 },
139-
{ HID_KEY_F12, HID_KEY_F12, 0, FLAG_STRING, F12 },
123+
{ HID_KEY_F1, HID_KEY_F12, 0, FLAG_STRING, F1 SEP F2 SEP F3 SEP F4 SEP F5 SEP F6 SEP F7 SEP F8 SEP F9 SEP F10 SEP F11 SEP F12},
140124
{ HID_KEY_PRINT_SCREEN, HID_KEY_PRINT_SCREEN, 0, FLAG_STRING, PRINT_SCREEN },
141-
142-
{ HID_KEY_ARROW_UP, HID_KEY_ARROW_UP, 0 , FLAG_STRING+FLAG_CTRL,CTRL_UP },
143-
{ HID_KEY_ARROW_DOWN, HID_KEY_ARROW_DOWN, 0 , FLAG_STRING+FLAG_CTRL, CTRL_DOWN },
144-
{ HID_KEY_ARROW_LEFT, HID_KEY_ARROW_LEFT, 0 , FLAG_STRING+FLAG_CTRL, CTRL_LEFT },
145-
{ HID_KEY_ARROW_RIGHT, HID_KEY_ARROW_RIGHT, 0 , FLAG_STRING+FLAG_CTRL, CTRL_RIGHT},
146-
{ HID_KEY_ARROW_UP, HID_KEY_ARROW_UP, 0 , FLAG_STRING,CURSOR_UP },
147-
{ HID_KEY_ARROW_DOWN, HID_KEY_ARROW_DOWN, 0 , FLAG_STRING, CURSOR_DOWN },
148-
{ HID_KEY_ARROW_LEFT, HID_KEY_ARROW_LEFT, 0 , FLAG_STRING, CURSOR_LEFT },
149-
{ HID_KEY_ARROW_RIGHT, HID_KEY_ARROW_RIGHT, 0 , FLAG_STRING, CURSOR_RIGHT},
150-
125+
{ HID_KEY_ARROW_RIGHT, HID_KEY_ARROW_UP, 0, FLAG_STRING | FLAG_CTRL, CTRL_RIGHT SEP CTRL_LEFT SEP CTRL_DOWN SEP CTRL_UP },
151126
};
152127

153128
STATIC bool report_contains(const hid_keyboard_report_t *report, uint8_t key) {
@@ -293,9 +268,9 @@ STATIC void process_event(uint8_t dev_addr, uint8_t instance, const hid_keyboard
293268
if (mapper->flags & FLAG_CTRL && !ctrl) {
294269
continue;
295270
}
296-
if (!(mapper->flags & FLAG_CTRL) && ctrl) {
271+
if (!(mapper->flags & FLAG_CTRL) && ctrl && (mapper->flags & FLAG_STRING)) {
297272
continue;
298-
}
273+
}
299274
if (mapper->flags & FLAG_STRING) {
300275
const char *msg = skip_nuls(mapper->data, keycode - mapper->first);
301276
send_bufz(msg);

0 commit comments

Comments
 (0)