41 Commits

Author SHA1 Message Date
Mitchell Hashimoto
2a390785f5 terminal: add protected mode flag to cursor pen 2023-09-25 10:56:57 -07:00
Mitchell Hashimoto
c8a07abdf3 terminal: ignore SOH/STX, bash sends this for some reason 2023-08-17 13:40:11 -07:00
Mitchell Hashimoto
951aa00c63 terminal: move to new modes struct 2023-08-15 11:30:33 -07:00
Mitchell Hashimoto
cea6f5f51d terminal: parse mode 1039 2023-08-13 15:15:11 -07:00
Mitchell Hashimoto
4a384aa272 parse and respect mode 1036 2023-08-13 15:12:13 -07:00
Mitchell Hashimoto
66aa1d9be3 terminal: parse and handle set modify key format (ESC[>{a};{b}m) 2023-08-13 14:55:32 -07:00
Mitchell Hashimoto
d94474463b terminal: handle set application keypad mode (both ESC and modes) 2023-08-13 14:55:32 -07:00
Mitchell Hashimoto
5c6d3c7df2 terminal: implement insert mode (mode = 4) 2023-08-07 07:44:13 -07:00
Mitchell Hashimoto
b1af02941a terminal: implement focus event mode 1004
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-FocusIn_FocusOut
2023-03-20 15:20:14 -07:00
Mitchell Hashimoto
1b88f7e9ab support mouse alt scroll (mode 1007)
This enables less and other older legacy programs to get mouse scroll
events
2023-03-17 19:10:08 -07:00
Mitchell Hashimoto
36c6e95dfc terminal: ignore invalid C0 escape codes 2022-12-14 20:57:31 -08:00
Mitchell Hashimoto
b8832833cb respect application cursor keys for arrow (DECCKM)
This fixes the arrow keys in htop.
2022-11-27 20:57:58 -08:00
Mitchell Hashimoto
fe6ba02709 sgr pixels mouse report format 2022-08-26 14:59:44 -07:00
Mitchell Hashimoto
1039ad76bf urxvt reporting format 2022-08-26 14:57:35 -07:00
Mitchell Hashimoto
f551c0ef66 SGR reporting 2022-08-26 14:55:18 -07:00
Mitchell Hashimoto
b46fe522d5 UTF-8 mouse reporting 2022-08-26 14:42:20 -07:00
Mitchell Hashimoto
ab305add6c any event mouse tracking 2022-08-26 14:26:42 -07:00
Mitchell Hashimoto
9aa5378ffa Track/cache button state and mods state 2022-08-26 13:55:24 -07:00
Mitchell Hashimoto
3096b32f13 mouse normal events in x10 format 2022-08-26 12:17:58 -07:00
Mitchell Hashimoto
93f45af41b X10 click-only mouse reporting 2022-08-26 12:04:54 -07:00
Mitchell Hashimoto
e163e4962b refactor cursor implementation, implement cursor visible (mode 25)
This cleans up a ton of state management around cursor styles,
visibility, blinking, etc. This was long in the tooth and when I was
trying to implement mode 25 I realized it was impossible with the
spaghetti mess I had. This made it really clean.

With this refactor, the Window keeps the "terminal_cursor" field the
proper state, and the render callback properly updates the gpu cells for
the cursor settings.

This also implements mode 25 (cursor visible) which makes neovim not
"flash" when vertically scrolling a vertical split. Neovim does some
cursor stuff but while doing so hides the cursor. This now respects
that.
2022-08-03 21:39:42 -07:00
Mitchell Hashimoto
40cec18943 implement DECSASD by just blackholing the output for now
We don't want to support status lines, and if anything sends us status
line information we don't want it to mess up the main display, so just
drop it.
2022-08-02 11:03:01 -07:00
Mitchell Hashimoto
d672bedec7 alternate screen buffer (mode 1049) now supported 2022-07-22 13:36:16 -07:00
Mitchell Hashimoto
5606bec8b8 add constants for 132 col mode but don't implement 2022-07-08 17:49:09 -07:00
Mitchell Hashimoto
4b6968e0d1 enable/disable autowrap 2022-07-08 17:43:52 -07:00
Mitchell Hashimoto
fae36f4e65 reverse colors 2022-06-26 11:56:15 -07:00
Mitchell Hashimoto
96d2de8f60 enq and cursor report with origin mode 2022-06-25 11:04:48 -07:00
Mitchell Hashimoto
fb6800c8ce handle SO/SI but don't do anything yet (just don't crash) 2022-06-25 10:06:40 -07:00
Mitchell Hashimoto
4d2d4322f4 implement VT 2022-06-24 18:00:42 -07:00
Mitchell Hashimoto
00a9987cd9 bracketed paste 2022-05-20 16:01:57 -07:00
Mitchell Hashimoto
3538e6782b update cursor on request from shell 2022-05-20 13:51:18 -07:00
Mitchell Hashimoto
37f621bc19 plumb CSI to set cursor style, but haven't implemented any styles 2022-05-19 21:43:30 -07:00
Mitchell Hashimoto
fd747ce274 implement device status request 2022-05-19 20:39:12 -07:00
Mitchell Hashimoto
d5858dd0cd respond to ESC [ c for primary attributes 2022-05-15 20:04:14 -07:00
Mitchell Hashimoto
b2d02a77cd terminal stream set mode and reset mode 2022-05-11 10:02:32 -07:00
Mitchell Hashimoto
6f66a0dbeb parse SGR really poorly 2022-05-09 10:02:23 -07:00
Mitchell Hashimoto
8e907a3522 terminal: pass intermediates through to CSI, ignore NUL 2022-05-08 15:02:24 -07:00
Mitchell Hashimoto
3857e7f519 don't crash on htab, but its not implemented yet 2022-04-27 09:30:39 -07:00
Mitchell Hashimoto
2767f19ced bell doesn't crash 2022-04-27 09:12:23 -07:00
Mitchell Hashimoto
753a946fd5 terminal: C0.BS 2022-04-18 12:35:15 -07:00
Mitchell Hashimoto
fc8bd859db terminal: writing strings and multiline strings starting to work 2022-04-18 12:21:50 -07:00