Mitchell Hashimoto
9c45c6a3d1
terminal: handle ansi vs dec mode
...
Previously, we just ignored ansi vs dec modes (`?`-prefix) and just
responded to both requests most of the time using the number as the
unique value. This _kind of works_ because almost all DEC modes do not
overlap with ANSI modes, but some overlap (i.e. `insert`, ANSI mode 4).
This commit properly separates ANSI vs DEC modes and updates all of our
terminal sequences to handle both (where applicable -- some sequences
are explicitly DEC-only).
2023-10-09 16:01:08 -07:00
Mitchell Hashimoto
0e22e2a8dd
terminal: SD should also work if cursor outside of left/right region
2023-10-09 10:53:47 -07:00
Mitchell Hashimoto
fc08f9ab17
terminal: TBC tests
2023-10-09 10:01:23 -07:00
Mitchell Hashimoto
ed23f2f1d0
terminal: implement DECID (ESC Z)
2023-10-09 09:43:28 -07:00
Mitchell Hashimoto
773104d343
terminal: scroll down tests
2023-10-09 09:40:28 -07:00
Mitchell Hashimoto
d0b8bf7752
terminal: enable alternate scroll mode by default
...
Fixes #641
xterm does not so there is an argument to not doing this but a lot of
other terminals do. Having this on by default makes things like less
scroll with the mouse wheel by default which is nice to have.
2023-10-09 09:23:39 -07:00
Mitchell Hashimoto
60f0e9289a
terminal: dch xterm audit
2023-10-08 22:16:35 -07:00
Mitchell Hashimoto
1176b65a95
terminal: test IND preserves background sgr
2023-10-08 21:39:29 -07:00
Mitchell Hashimoto
4b9560aa31
terminal: DL
2023-10-08 21:28:41 -07:00
Mitchell Hashimoto
76bbb7c361
terminal: insert lines (IL) handles left/right scroll regions
2023-10-08 20:51:00 -07:00
Mitchell Hashimoto
38f968e368
terminal: IL preserves bg sgr, partial left/right margin support
2023-10-08 15:27:09 -07:00
Mitchell Hashimoto
eab390344a
terminal: ED xterm audit
...
Fix multi-cell handling
Test all scenarios
2023-10-08 14:48:06 -07:00
Mitchell Hashimoto
02b134f97e
terminal: EL (erase line) xterm audit
...
Fix multi-cell char handling
Fix bg SGR respecting in non-protected cases
Fix protected attribute logic
2023-10-08 09:03:04 -07:00
Mitchell Hashimoto
fa73fa0de2
terminal: ECH handles protection attributes properly
2023-10-07 22:36:29 -07:00
Mitchell Hashimoto
514071dd87
terminal: ECH tests with bg and multi-cell fix
2023-10-07 22:21:38 -07:00
Mitchell Hashimoto
f640fbc394
core: alternate scroll only sends up/down arrows, not left/right
2023-10-07 14:26:39 -07:00
Mitchell Hashimoto
d85baa4631
terminal: alternate scroll (mode 1007) should not be enabled by default
2023-10-07 14:26:11 -07:00
Mitchell Hashimoto
90dcf1b7a8
Revert "termio: clear screen always sends form feed (0x0C)"
...
This reverts commit abc383854604189378bfe61239c14f263f7a14de.
See #623
2023-10-07 13:58:07 -07:00
Mitchell Hashimoto
b927760149
terminal: HPR, VPR
2023-10-07 09:32:58 -07:00
Mitchell Hashimoto
f5a5de15cc
terminal: HPA, VPA
2023-10-07 09:22:13 -07:00
Mitchell Hashimoto
28f6379453
terminal: CUP respects left/right scroll region
2023-10-07 09:17:00 -07:00
Mitchell Hashimoto
c089c37b90
terminal: CUF handles right margin
2023-10-07 08:42:08 -07:00
Mitchell Hashimoto
9b7c778e55
terminal: cursor up respects scroll margins
2023-10-06 22:41:40 -07:00
Mitchell Hashimoto
78d69c6cdb
website: ich split multi-cell
2023-10-06 22:23:08 -07:00
Mitchell Hashimoto
0645ab7a98
terminal: ICH handles left/right margins, clears bg
2023-10-06 22:08:21 -07:00
Mitchell Hashimoto
e4b844dea6
terminal: CHT
2023-10-06 16:58:48 -07:00
Mitchell Hashimoto
cf01cd87a4
terminal: CBT respects left margin in origin mode
2023-10-06 15:48:05 -07:00
Mitchell Hashimoto
6958978a6c
terminal: IND supports left/right margins
2023-10-06 14:54:40 -07:00
Mitchell Hashimoto
ec854a20eb
terminal: a lot more index tests
2023-10-06 14:33:02 -07:00
Mitchell Hashimoto
eeecc6c7e7
terminal: cursor down respects bottom margins
2023-10-06 12:54:02 -07:00
Mitchell Hashimoto
c2af7b60d0
terminal: FF (0x0D) also invokes LF
2023-10-06 12:00:18 -07:00
Mitchell Hashimoto
3360a88768
terminal: implement origin mode and left margin handling for CR
2023-10-06 11:37:50 -07:00
Mitchell Hashimoto
e3b455444d
terminal: have left/right scrolling region data but can't be set yet
2023-10-06 11:28:20 -07:00
Mitchell Hashimoto
f32ae27660
terminal: add todo for CUB for left/right margins
2023-10-06 09:27:02 -07:00
Mitchell Hashimoto
d3483a8eed
terminal: extended reverse wrap takes priority over reverse wrap
2023-10-06 08:59:22 -07:00
Mitchell Hashimoto
a1becf73ad
terminal: CUB extended reverse wrap mode
2023-10-06 08:55:09 -07:00
Mitchell Hashimoto
9e506ac7e1
terminal: cursor back handles reverse wrap (mode 45)
2023-10-06 08:35:02 -07:00
Mitchell Hashimoto
7fe1a61ae8
terminal: cursor back should reduce count if pending wrap is one
2023-10-06 07:52:15 -07:00
Mitchell Hashimoto
e74897fa01
config: add option to disable working directory inheritance
...
Fixes #618
2023-10-05 21:55:43 -07:00
Mitchell Hashimoto
224b39b86e
font/coretext: allow setting a non-monospace font explicitly
...
This changes our font discovery to not filter out monospace and updates
our scoring mechanism to prefer monospace.
2023-10-05 08:39:48 -07:00
Mitchell Hashimoto
7a0b8a6781
font: fix failing macos tests
2023-10-05 08:08:04 -07:00
Mitchell Hashimoto
7eb3130faf
config: update some docs
2023-10-04 22:09:20 -07:00
Mitchell Hashimoto
b98cc3d79f
config: add remaining font modifiers
2023-10-04 22:08:19 -07:00
Mitchell Hashimoto
16cfb14200
font: modify font compiles for freetype
2023-10-04 21:48:51 -07:00
Mitchell Hashimoto
2563a195a1
font: wire up all the metric modifiers
2023-10-04 21:42:03 -07:00
Mitchell Hashimoto
54b9b45a7f
font: rework font init to use a struct with modifiersets everywhere
2023-10-04 17:23:57 -07:00
Mitchell Hashimoto
969960a10b
font: Metrics ModifierSet
2023-10-04 15:56:32 -07:00
Mitchell Hashimoto
bac5e20962
font: Metrics.Modifier for applying a percentage/absolute change
2023-10-04 15:28:22 -07:00
Mitchell Hashimoto
ee832aa361
apprt/embedded: ghostty_surface_text function, remove _char
2023-10-04 07:56:56 -07:00
Mitchell Hashimoto
3046fb6dd7
core: textCallback to send text directly to the terminal
2023-10-04 07:50:05 -07:00