+
Keyboard
+
+
+ The user can input text using their keyboard, or on Android, using the on-screen keyboard which is open using
+ a button beneath the screen. Supported are all printable characters, as well as many control keys, such as arrows, Ctrl+letters
+ and function keys. Sequences sent by function keys are based on VT102 and Xterm.
+
+
+
+ The codes sent by Home, End, F1-F4 and cursor keys are affected by various keyboard modes (Application Cursor Keys,
+ Application Numpad Mode, SS3 Fn Keys Mode). Some can be set in the Terminal Settings,
+ others via commands.
+
+
+
+ Here are some examples of control key codes:
+
+
+
+ Key | Code | Key | Code |
+
+ Up |
+ \e[A , \eOA |
+ F1 |
+ \eOP , \e[11~ |
+
+
+ Down |
+ \e[B , \eOB |
+ F2 |
+ \eOQ , \e[12~ |
+
+
+ Right |
+ \e[C , \eOC |
+ F3 |
+ \eOR , \e[13~ |
+
+
+ Left |
+ \e[D , \eOD |
+ F4 |
+ \eOS , \e[14~ |
+
+
+ Home |
+ \eOH , \e[H , \e[1~ |
+ F5 |
+ \e[15 |
+
+
+ End |
+ \eOF , \e[F , \e[4~ |
+ F6 |
+ \e[17~ |
+
+
+ Insert |
+ \e[2~ |
+ F7 |
+ \e[18~ |
+
+
+ Delete |
+ \e[3~ |
+ F8 |
+ \e[19~ |
+
+
+ Page Up |
+ \e[5~ |
+ F9 |
+ \e[20~ |
+
+
+ Page Down |
+ \e[6~ |
+ F10 |
+ \e[21~ |
+
+
+ Enter |
+ \r (13) |
+ F11 |
+ \e[23~ |
+
+
+ Ctrl+Enter |
+ \n (10) |
+ F12 |
+ \e[24~ |
+
+
+ Tab |
+ \t (9) |
+ ESC |
+ \e (27) |
+
+
+ Backspace |
+ \b (8) |
+ Ctrl+A..Z |
+ ASCII 1-26 |
+
+
+
+
Action buttons
+
+
+ The blue buttons under the screen send ASCII codes 1, 2, 3, 4, 5, which incidentally
+ correspond to Ctrl+A,B,C,D,E. This choice was made to make button press parsing as simple as possible.
+
+
+
Mouse
+
+
+ ESPTerm implements standard mouse tracking modes based on Xterm. Mouse tracking can be used to implement
+ powerful user interactions such as on-screen buttons, draggable sliders or dials, menus etc. ESPTerm's
+ mouse tracking was tested using VTTest and should be compatible with all terminal applications
+ that request mouse tracking.
+
+
+
+ Mouse can be tracked in different ways; some are easier to parse, others more powerful. The coordinates
+ can also be encoded in different ways. All mouse tracking options are set using option commands:
+ CSI ? n h
to enable, CSI ? n l
to disable option n.
+
+
+
Mouse Tracking Modes
+
+
+ All tracking modes produce three numbers which are then encoded and send to the application.
+ First is the event number N, then the X and Y coordinates, 1-based.
+
+
+
+ Mouse buttons are numbered: 1=left, 2=middle, 3=right.
+ Wheel works as two buttons (4 and 5) which generate only press events (no release).
+
+
+
+
+
Mouse Report Encoding
+
+
+ The following encoding schemes can be used with any of the tracking modes (except Focus tracking, which is not affected).
+
+
+
+