diff options
Diffstat (limited to '')
| -rw-r--r-- | boxes.c | 22 |
1 files changed, 9 insertions, 13 deletions
| @@ -304,6 +304,7 @@ struct key | |||
| 304 | }; | 304 | }; |
| 305 | 305 | ||
| 306 | // This table includes some variations I have found on some terminals, and the MC "Esc digit" versions. | 306 | // This table includes some variations I have found on some terminals, and the MC "Esc digit" versions. |
| 307 | // http://rtfm.etla.org/xterm/ctlseq.html has a useful guide. | ||
| 307 | // TODO - Don't think I got all the linux console variations. | 308 | // TODO - Don't think I got all the linux console variations. |
| 308 | // TODO - Add more shift variations, plus Ctrl & Alt variations when needed. | 309 | // TODO - Add more shift variations, plus Ctrl & Alt variations when needed. |
| 309 | // TODO - tmux messes with the shift function keys somehow. | 310 | // TODO - tmux messes with the shift function keys somehow. |
| @@ -395,7 +396,7 @@ struct key keys[] = | |||
| 395 | {"\x1B[23;2~", "Shift F11"}, | 396 | {"\x1B[23;2~", "Shift F11"}, |
| 396 | {"\x1B[24;2~", "Shift F12"}, | 397 | {"\x1B[24;2~", "Shift F12"}, |
| 397 | 398 | ||
| 398 | // Some terminals are special, and it seems they only have four function keys. | 399 | // "Normal" Some terminals are special, and it seems they only have four function keys. |
| 399 | {"\x1B[A", "Up"}, | 400 | {"\x1B[A", "Up"}, |
| 400 | {"\x1B[B", "Down"}, | 401 | {"\x1B[B", "Down"}, |
| 401 | {"\x1B[C", "Right"}, | 402 | {"\x1B[C", "Right"}, |
| @@ -411,7 +412,7 @@ struct key keys[] = | |||
| 411 | {"\x1B[1;2R", "Shift F3"}, | 412 | {"\x1B[1;2R", "Shift F3"}, |
| 412 | {"\x1B[1;2S", "Shift F4"}, | 413 | {"\x1B[1;2S", "Shift F4"}, |
| 413 | 414 | ||
| 414 | // Not sure what this odd collection is. | 415 | // "Application" Esc O is known as SS3 |
| 415 | {"\x1BOA", "Up"}, | 416 | {"\x1BOA", "Up"}, |
| 416 | {"\x1BOB", "Down"}, | 417 | {"\x1BOB", "Down"}, |
| 417 | {"\x1BOC", "Right"}, | 418 | {"\x1BOC", "Right"}, |
| @@ -427,7 +428,7 @@ struct key keys[] = | |||
| 427 | {"\x1BOR", "F3"}, | 428 | {"\x1BOR", "F3"}, |
| 428 | {"\x1BOS", "F4"}, | 429 | {"\x1BOS", "F4"}, |
| 429 | {"\x1BOT", "F5"}, | 430 | {"\x1BOT", "F5"}, |
| 430 | // These two conflict with the above four function key variation. | 431 | // These two conflict with the above four function key variations. |
| 431 | {"\x1B[R", "F6"}, | 432 | {"\x1B[R", "F6"}, |
| 432 | {"\x1B[S", "F7"}, | 433 | {"\x1B[S", "F7"}, |
| 433 | {"\x1B[T", "F8"}, | 434 | {"\x1B[T", "F8"}, |
| @@ -437,16 +438,10 @@ struct key keys[] = | |||
| 437 | {"\x1B[X", "F12"}, | 438 | {"\x1B[X", "F12"}, |
| 438 | 439 | ||
| 439 | // Can't remember, but saw them somewhere. | 440 | // Can't remember, but saw them somewhere. |
| 440 | {"\x1B\x4f\x46", "End"}, | 441 | {"\x1BO1;2P", "Shift F1"}, |
| 441 | {"\x1B\x4f\x48", "Home"}, | 442 | {"\x1BO1;2Q", "Shift F2"}, |
| 442 | {"\x1B\x4F\x50", "F1"}, | 443 | {"\x1BO1;2R", "Shift F3"}, |
| 443 | {"\x1B\x4F\x51", "F2"}, | 444 | {"\x1BO1;2S", "Shift F4"}, |
| 444 | {"\x1B\x4F\x52", "F3"}, | ||
| 445 | {"\x1B\x4F\x53", "F4"}, | ||
| 446 | {"\x1B\x4f\x31;2P", "Shift F1"}, | ||
| 447 | {"\x1B\x4f\x31;2Q", "Shift F2"}, | ||
| 448 | {"\x1B\x4f\x31;2R", "Shift F3"}, | ||
| 449 | {"\x1B\x4f\x31;2S", "Shift F4"}, | ||
| 450 | 445 | ||
| 451 | // MC "Esc digit" specials. | 446 | // MC "Esc digit" specials. |
| 452 | // NOTE - The MC Esc variations might not be such a good idea, other programs want the Esc key for other things. | 447 | // NOTE - The MC Esc variations might not be such a good idea, other programs want the Esc key for other things. |
| @@ -2708,6 +2703,7 @@ void boxes_main(void) | |||
| 2708 | moveCursorAbsolute(commandLine, 0, commandLine->content->lines.length, 0, 0); | 2703 | moveCursorAbsolute(commandLine, 0, commandLine->content->lines.length, 0, 0); |
| 2709 | 2704 | ||
| 2710 | // All the mouse tracking methods suck one way or another. sigh | 2705 | // All the mouse tracking methods suck one way or another. sigh |
| 2706 | // http://rtfm.etla.org/xterm/ctlseq.html documents xterm stuff, near the bottom is the mouse stuff. | ||
| 2711 | // http://leonerds-code.blogspot.co.uk/2012/04/wide-mouse-support-in-libvterm.html is helpful. | 2707 | // http://leonerds-code.blogspot.co.uk/2012/04/wide-mouse-support-in-libvterm.html is helpful. |
| 2712 | // Enable mouse (VT200 normal tracking mode, UTF8 encoding). The limit is 2015. Seems to only be in later xterms. | 2708 | // Enable mouse (VT200 normal tracking mode, UTF8 encoding). The limit is 2015. Seems to only be in later xterms. |
| 2713 | // printf("\x1B[?1005h"); | 2709 | // printf("\x1B[?1005h"); |
