blob: 743c412477107285a14b3b50ecc71e05d9b03069 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/**
* Keyboard handling functions
*/
/**
* Encode a keyboard event into kitty protocol ANSI escape sequence
* @param {KeyboardEvent} ev - The keyboard event to encode
* @param {function} send_ansi_key - Function to send the ANSI key sequence
*/
export function encode_kitty_key(ev, send_ansi_key) {
let shift_value = 1;
let alt_value = 2;
let ctrl_value = 4;
let super_value = 8;
let modifier_string = 1;
if (ev.shiftKey) {
modifier_string += shift_value;
}
if (ev.altKey) {
modifier_string += alt_value;
}
if (ev.ctrlKey) {
modifier_string += ctrl_value;
}
if (ev.metaKey) {
modifier_string += super_value;
}
let key_code = ev.key.charCodeAt(0);
send_ansi_key(`\x1b[${key_code};${modifier_string}u`);
}
|