Commit graph

356 commits

Author SHA1 Message Date
Tim Culverhouse
6043f0569a widgets(terminal): remove error logs
And use a buffered writer in the example
2024-06-18 18:41:48 -05:00
Rylee Lyman
f25a9b9660 fix: deinit TTY to avoid stair-stepped output 2024-06-13 12:34:03 -07:00
Tim Culverhouse
975dd01a77 readme: add supported operating systems 2024-06-13 12:51:49 -05:00
Rylee Lyman
f57ba4b477 fix: add ThreadPool for key events on macOS 2024-06-13 07:40:24 -07:00
Tim Culverhouse
254cc0aac0 ci: use mlugg/setup-zig 2024-06-13 08:19:15 -05:00
CJ van den Berg
3a0392c282 tty(windows): fix mouse wheel direction calculation 2024-06-13 05:59:11 -07:00
Tim Culverhouse
36696e8785 tty(windows): parse mouse events 2024-06-13 07:16:46 -05:00
CJ van den Berg
790dbaae24 build: allow building on freebsd 2024-06-13 04:17:45 -07:00
Tim Culverhouse
f230f0c30a widgets(terminal): send a redraw event 2024-06-12 19:29:19 -05:00
Tim Culverhouse
8f4ca5b830 tty(windows): enable_extended_flags
Note: we still need to parse the events.
2024-06-12 11:15:16 -05:00
Tim Culverhouse
cea5798db9 widgets(terminal): ensure only one sigchild handler installed 2024-06-12 06:36:07 -05:00
Tim Culverhouse
bf0828f9ef build: update minimum zig version 2024-06-11 20:41:02 -05:00
Tim Culverhouse
46e7fd8fc6 widgets: remove neovim widget
The neovim widget was great. But we have a full virtual terminal widget
now, which doesn't bring in extra dependencies.
2024-06-11 20:35:10 -05:00
Tim Culverhouse
88d6c76fa8 fix(readme): restore vaxis.gif 2024-06-11 20:32:39 -05:00
Tim Culverhouse
96387d43e6 build: change neovim default to true
Commit ec98c7cd3d fixed the default value to match the description,
however this resulted in the docs failing to build since the files are
needed in the default build case.

Update the default and description to true.
2024-06-11 20:29:18 -05:00
Frederico Winter
ec98c7cd3d changed the default value of the nvim option to correspond to it's default description 2024-06-11 18:27:00 -07:00
Tim Culverhouse
9c723bb645 examples(vt): use shell environment for command 2024-06-11 19:09:55 -05:00
Tim Culverhouse
389ac3ef40 widgets(terminal): clean up accidentally included files 2024-06-11 14:07:01 -05:00
Tim Culverhouse
6d4c180e31 widgets(terminal): implement legacy key encoding 2024-06-11 14:00:37 -05:00
Tim Culverhouse
7954e8c9ba build: use upstream zg
My commit for replacement characters was merged
2024-06-11 14:00:02 -05:00
Tim Culverhouse
37b0d5c69d widgets(terminal): read full codepoints
Only read full codepoints. Some programs will split codepoints between
reads, which can mess with our parser (looking at you, btop)
2024-06-11 13:59:07 -05:00
Tim Culverhouse
eeb69f012a widgets(terminal): fix cursor showing 2024-06-11 10:28:07 -05:00
Tim Culverhouse
05f52ed4ee widgets(terminal): implement escapes, fix scrollDown 2024-06-11 10:27:18 -05:00
Tim Culverhouse
b688732f56 widgets(terminal): use buffered reader in parser
Use a buffered reader so we can inspect the read state. We need this to
know if we have a finished read on a printable byte
2024-06-10 15:07:04 -05:00
Tim Culverhouse
9f2af4d5ee widgets(terminal): implement even more csi sequences 2024-06-10 14:18:55 -05:00
Tim Culverhouse
3ab3edf6bf widgets(terminal): use zg fork 2024-06-10 14:18:32 -05:00
Tim Culverhouse
e4005253d2 widgets(terminal): fix eraseLeft 2024-06-10 14:18:32 -05:00
Tim Culverhouse
0cd57fe0f5 widgets(terminal): implement many more CSI seqs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
24ad3bf3da widgets(terminal): handle erase in display 2024-06-10 14:18:32 -05:00
Tim Culverhouse
c14a100eed widgets(terminal): handle horizontal tabs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
1c5ecae8f0 widgets(terminal): implement CNL 2024-06-10 14:18:32 -05:00
Tim Culverhouse
99ff37840d widgets(terminal): refactor CUD and CR 2024-06-10 14:18:32 -05:00
Tim Culverhouse
2f2e38eea5 widgets(terminal): set global_vts to null on last exit 2024-06-10 14:18:32 -05:00
Tim Culverhouse
044b099227 widgets(terminal): handle scrolling_region in CUU, CUD 2024-06-10 14:18:32 -05:00
Tim Culverhouse
11ae2e7b29 widgets(terminal): prevent deadlock in draw
The draw method could obtain a lock but never free it due to the logic
of the if statement.
2024-06-10 14:18:32 -05:00
Tim Culverhouse
3a382eacdb widgets(terminal): fix overflow in CUP 2024-06-10 14:18:32 -05:00
Tim Culverhouse
aa9e492b26 widgets(terminal): simplify cursorLeft logic 2024-06-10 14:18:32 -05:00
Tim Culverhouse
cc77c98d32 widgets(terminal): implement CSI D 2024-06-10 14:18:32 -05:00
Tim Culverhouse
21f2a48a80 examples: update terminal example 2024-06-10 14:18:32 -05:00
Tim Culverhouse
d991755fe2 widgets(terminal): handle exiting events 2024-06-10 14:18:32 -05:00
Tim Culverhouse
ef62de5541 widgets(terminal): dirty handling, cursor up, cursor shapes 2024-06-10 14:18:32 -05:00
Tim Culverhouse
c52bb30cdc widgets(terminal): remove comment about default 2024-06-10 14:18:32 -05:00
Tim Culverhouse
3765dbef2b widgets(terminal): handle (some) wrapping 2024-06-10 14:18:32 -05:00
Tim Culverhouse
7a7f4892d7 widgets(terminal): simple key encoding, alt screen 2024-06-10 14:18:32 -05:00
Tim Culverhouse
78508b76bd widgets(terminal): improve logging 2024-06-10 14:18:32 -05:00
Tim Culverhouse
d36be9048c widgets(terminal): allow for always joining thread
Write an EOT into the tty stream so after killing the process we
*always* are able to join the thread. Maybe this is the very reason the
EOT control byte exists?
2024-06-10 14:18:32 -05:00
Tim Culverhouse
f9d2fc7532 widgets(terminal): append last byte to escape seqs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
987f939bd8 widgets(terminal): support cursor mode 2024-06-10 14:18:32 -05:00
Tim Culverhouse
36854123fe widgets(terminal): use types for c0 and csi 2024-06-10 14:18:32 -05:00
Tim Culverhouse
ecb2ea20e4 widgets(terminal): more c0 control impls 2024-06-10 14:18:32 -05:00