From 76e3c472eb6113e8c2fcad1f31a13ec1fd740b13 Mon Sep 17 00:00:00 2001 From: Anton Anikin Date: Sun, 26 Dec 2021 17:58:31 +0800 Subject: [PATCH] tmux fix --- src/keycode.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/keycode.c b/src/keycode.c index d2ae282..f140782 100644 --- a/src/keycode.c +++ b/src/keycode.c @@ -74,6 +74,14 @@ keycode() if (len == 1) { code = buffer[0]; } else { + /*if (code == 0) { + printf("len = %d\n", len); + for (int i = 0; i < len; i++) { + printf("%d; ", buffer[i]); + } + printf("\n"); + }*/ + // ugly code if ((len == 3) && (buffer[1] == 91) && (buffer[2] == 65)) code = KEY_UP; if ((len == 3) && (buffer[1] == 91) && (buffer[2] == 66)) code = KEY_DOWN; @@ -83,6 +91,10 @@ keycode() if ((len == 3) && (buffer[1] == 91) && (buffer[2] == 72)) code = KEY_HOME; if ((len == 3) && (buffer[1] == 91) && (buffer[2] == 70)) code = KEY_END; + // inside tmux on ubuntu 20.04 + if ((len == 4) && (buffer[1] == 91) && (buffer[2] == 49) && (buffer[3] == 126)) code = KEY_HOME; + if ((len == 4) && (buffer[1] == 91) && (buffer[2] == 52) && (buffer[3] == 126)) code = KEY_END; + if ((len == 4) && (buffer[1] == 91) && (buffer[2] == 50) && (buffer[3] == 126)) code = KEY_INS; if ((len == 4) && (buffer[1] == 91) && (buffer[2] == 51) && (buffer[3] == 126)) code = KEY_DEL; @@ -105,8 +117,10 @@ keycode() if ((len == 5) && (buffer[1] == 91) && (buffer[2] == 50) && (buffer[3] == 52) && (buffer[4] == 126)) code = KEY_F12; /*if (code == 0) { - for (i = 0; i < len; i++) - printf("%d;", buffer[i]); + printf("len = %d\n", len); + for (int i = 0; i < len; i++) { + printf("%d; ", buffer[i]); + } printf("\n"); }*/ }