2094 Commits

Author SHA1 Message Date
Mitchell Hashimoto
a5066635f0 renderer: do not downsample oversized glyphs
Fixes #696

We should rely on the rasterizer to create glyphs of the proper size,
including doing CPU resizing if necessary.
2023-10-17 10:55:04 -07:00
Mitchell Hashimoto
ab35a21dc2 renderer: render cursor behind colored emoji 2023-10-16 12:57:23 -07:00
Mitchell Hashimoto
0918731d9a renderer/metal: need to set proper alpha for fg mode in shader
Fixes #673
2023-10-16 12:22:51 -07:00
Mitchell Hashimoto
407bd6fb79 terminal: with mode 2027, vs16 must move cursor one more right
Fixes #680
2023-10-16 09:48:05 -07:00
Mitchell Hashimoto
12054087e1 terminal: scroll up full top/bottom region was off by one
Fixes #689

See test cases, verified with xterm.
2023-10-16 09:25:47 -07:00
Mitchell Hashimoto
1c0fd2442b Merge pull request #688 from mitchellh/dsr
xterm audit: cursor position report (CPR)
2023-10-15 22:00:10 -07:00
Mitchell Hashimoto
7b81eba565 terminal: cursor position report respects left scroll region with origin 2023-10-15 21:58:13 -07:00
Mitchell Hashimoto
c382f61a32 Merge pull request #687 from mitchellh/cancel
renderer: handle error.NotFound for timer cancellation
2023-10-15 21:44:42 -07:00
Mitchell Hashimoto
78b5c1db77 renderer: handle error.NotFound for timer cancellation
Fixes #685

This is expected in very rare scenarios where under heavy load, a timer
could complete before a cancellation request is processed, resulting in
a "not found".
2023-10-15 21:35:13 -07:00
Mitchell Hashimoto
06f7cfb398 terminal: save cursor and restore cursor xterm audit 2023-10-15 21:25:47 -07:00
Mitchell Hashimoto
879bdf27a9 core: scroll viewport back to bottom on any key input that isn't a mod
Fixes #619

This changes the behavior from requiring printable text to any input
that isn't a modifier and also generates some data we send to the pty.
If there is printable text, we also clear the selection.
2023-10-15 08:53:38 -07:00
Mitchell Hashimoto
de1ed071ad termio: configure OSC parser with an allocator 2023-10-15 08:41:38 -07:00
Mitchell Hashimoto
cfac6c4001 terminal: OSC parser takes optional allocator
OSC 52 is the only command that uses this today. If the allocator is
present it will use it to store the clipboard contents.
2023-10-14 21:49:10 -07:00
Mitchell Hashimoto
b4070eb67e renderer: unfocused cursor should always be fully opaque 2023-10-14 14:11:15 -07:00
Mitchell Hashimoto
ff38d3e358 config: add cursor-opacity 2023-10-14 14:08:06 -07:00
Mitchell Hashimoto
7167cf9054 renderer: default cursor color to foreground
Fixes #667
2023-10-14 14:02:17 -07:00
Mitchell Hashimoto
a75d42b4a5 core: allow arrow key on scroll to fail write to IO
Fixes #625

This only applies if there is a LOT of scroll events. In that case,
clamping the scroll events to whatever our IO thread can handle seems
fine. An alternate approach is to allocate.
2023-10-14 10:53:20 -07:00
Mitchell Hashimoto
59140f593b terminal: VS16 should make a narrow char take up two cells in mode 2027 2023-10-14 10:43:50 -07:00
Mitchell Hashimoto
529d1f016f terminal: when clearing previous wide character, preserve SGR state 2023-10-13 15:15:14 -07:00
Mitchell Hashimoto
880252fd1d terminal: printing over wide spacer tail should clear wide char 2023-10-13 14:45:40 -07:00
Mitchell Hashimoto
4f5a05e087 renderer: render cursor over wide character if on tail part 2023-10-13 14:39:10 -07:00
Mitchell Hashimoto
7995d44cfb font: render sprites with a configurable grid cell width
Fixes #666
2023-10-13 14:31:55 -07:00
Mitchell Hashimoto
1411015038 font: fallback search should search full discovery chain
Fixes #668

We were previously only checking the first font result in the search.
This also fixes our CoreText scoring algorithm to prioritize faces that
have the codepoint we're searching for.
2023-10-13 12:25:27 -07:00
Mitchell Hashimoto
5ce50d08a1 terminal: linefeed mode 2023-10-12 20:46:26 -07:00
Mitchell Hashimoto
853c0427e6 website: document srm mode 2023-10-12 19:38:06 -07:00
Mitchell Hashimoto
89d2827910 terminal: insert mode tests, fix insertBlanks multi-cell char split 2023-10-12 19:24:27 -07:00
Mitchell Hashimoto
6a065540dd terminal: KAM (mode 2)
This has an associated config `vt-kam-allowed` which defaults to "false"
since this mode can cause the terminal to become mostly unusable. We
include this mode for completions sake however.
2023-10-12 17:07:47 -07:00
Mitchell Hashimoto
d97e5b9dab input: legacy encoding pc style keys should ignore directional modifiers 2023-10-12 12:28:26 -07:00
Mitchell Hashimoto
17430a1250 terminal: index handles left/right regions 2023-10-12 08:31:28 -07:00
Mitchell Hashimoto
f94f32be79 website 2023-10-11 22:01:37 -07:00
Mitchell Hashimoto
392da475e1 terminal: XTSHIFTESCAPE 2023-10-11 21:49:04 -07:00
Mitchell Hashimoto
f7cc5ccdd6 config: add mouse-shift-capture configuration 2023-10-11 21:38:52 -07:00
Mitchell Hashimoto
96546af475 terminal: test REP 2023-10-11 17:23:27 -07:00
Mitchell Hashimoto
e593ffa264 terminal: default for right scroll margin was incorrect 2023-10-10 16:06:27 -07:00
Mitchell Hashimoto
0d2bfacd5b terminfo: add left/right margin entries 2023-10-10 15:59:24 -07:00
Mitchell Hashimoto
a9fee348b6 terminal: print handles left/right margins 2023-10-10 15:41:31 -07:00
Mitchell Hashimoto
73ecb6f7ee terminal: CUL handles left/right margins 2023-10-10 15:26:04 -07:00
Mitchell Hashimoto
0c2bf94b13 Enable left/right margin support 2023-10-10 15:21:45 -07:00
Mitchell Hashimoto
fbc305c901 terminal: reverse index xterm audit 2023-10-10 15:15:53 -07:00
Mitchell Hashimoto
d8f2a8dff0 termio: NEL is index then CR 2023-10-10 14:37:25 -07:00
Mitchell Hashimoto
28b7329fe4 terminal: scroll down test 2023-10-10 14:22:05 -07:00
Mitchell Hashimoto
3cc0cbcc9d terminal: SU, fix DL bug 2023-10-10 13:00:00 -07:00
Mitchell Hashimoto
7a8f2bfed6 terminal: decscusr 2023-10-10 12:24:11 -07:00
Mitchell Hashimoto
5d1b54eceb termio: unescape OSC 7 pwd since it is URL encoded
Fixes #621
2023-10-10 11:21:59 -07:00
Mitchell Hashimoto
a234627156 core: mouse selection to right should include first cell if past
boundary
2023-10-10 09:37:11 -07:00
Mitchell Hashimoto
a6d3d51945 core: mouse selection when moving left before half-way point
If you have a cell "M" and you click before the mid-point of M on the
left side and then drag left, we should not select "M".
2023-10-10 09:35:11 -07:00
Mitchell Hashimoto
f216609662 terminal: RIS should reset tabstops, ESC ? W should reset every 8
Fixes #648

Two issues here:

  - RIS should've been resetting the tabstops to every 8, but was
    clearing all tabstops.

  - `ESC ? W` should've reset tabstops to every 8, but was clearing
    all tabstops.
2023-10-10 09:02:22 -07:00
Mitchell Hashimoto
2354454907 terminal: set left and right margins, left and right margin mode 69 2023-10-09 21:20:15 -07:00
Mitchell Hashimoto
be99d8ffe1 terminal: decaln 2023-10-09 20:33:52 -07:00
Mitchell Hashimoto
7cc0bbe211 terminal: set top and bottom margin tests 2023-10-09 20:08:16 -07:00