Tim Culverhouse
9f89ed06f3
vaxis: use vt caps to measure grapheme widths
...
Implement our own grapheme measuring function which switches on whether
the terminal supports mode 2027
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-24 06:12:39 -06:00
Tim Culverhouse
04f6117cfe
vaxis: enable da1 parsing, use futex timeout to return from query
...
Now that DA1 parsing is done, block the queryTerminal function until the
DA1 response is received, or a 1 second timeout elapses. With this
functionality, move certain events into Vaxis's realm of handling: IE
enabling kitty keyboard, unicode mode, etc
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-23 21:30:09 -06:00
Tim Culverhouse
a2dc97c039
vaxis: add mode 2027 query parsing, wcwidth measurement
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-23 21:06:02 -06:00
Tim Culverhouse
aaa1c17a81
key: enable kitty keyboard
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-23 13:25:31 -06:00
Tim Culverhouse
44ff960cb0
caps: implement first capability response (kitty keyboard)
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-23 08:10:59 -06:00
Tim Culverhouse
f1a9e21a98
tty: use grapheme cache in the tty run method
...
We only need the grapheme cache when we are parsing input
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-22 10:40:30 -06:00
Tim Culverhouse
64557bf9ab
parser: use a ring buffer to store raw text
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-22 10:26:33 -06:00
Tim Culverhouse
40525eb038
parser: handle graphemes
...
I'm not positive this is the final approach. We fill in the `text` field
if there was multi-codepoint text generated from the key_press.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-21 17:54:44 -06:00
Tim Culverhouse
25d844702f
tty: add events to parser handling, update comment
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-21 13:20:34 -06:00
Tim Culverhouse
8caa67d5b3
tty: add todo for incomplete parsing
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-21 13:16:52 -06:00
Tim Culverhouse
4ac15e2195
parser: refactor into testable function
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-21 12:47:34 -06:00
Tim Culverhouse
38b41c4ecf
parser: more kitty key parsing
...
Add some more implementation details to kitty key parsing
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-21 11:53:25 -06:00
Tim Culverhouse
93d9ead99c
parser: more progress on CSI parsing
...
Add additional CSI parsing for keys
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-20 08:05:22 -06:00
Tim Culverhouse
462a303903
examples: add some comments
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 22:02:10 -06:00
Tim Culverhouse
58bc6864cb
render: implement double buffered screen for rendering
...
This lets us efficiently render by only updating cells that have changed
since last render
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 13:13:20 -06:00
Tim Culverhouse
43ea14e263
queue: check for fields before posting events
...
This allows users of the lib to not worry about having the fields on
their enum
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 12:24:02 -06:00
Tim Culverhouse
bef5276340
vaxis: send winsize at run, initialize screen to default cells
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 11:44:20 -06:00
Tim Culverhouse
8c8caf4769
tty: enable writing to tty and add smcup in example
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 10:58:14 -06:00
Tim Culverhouse
c3964fec43
rename project libvaxis
...
This is so similar to my vaxis project for go that we'll retain the name
here as well. The two can keep similar APIs and feature sets, but are
used in different languages. Maybe someday libvaxis will export a C api
for even broader use
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-19 10:13:32 -06:00
Tim Culverhouse
266c5ec224
screen: implement initial screen data structure
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 23:18:19 -06:00
Tim Culverhouse
a9c97d051b
tty: implement winch handling
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 22:37:48 -06:00
Tim Culverhouse
3176eb81ef
hack: go to ground state in escape state
...
Only doing this until I finish the parser
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 20:35:33 -06:00
Tim Culverhouse
27548f7f9d
parse: ground parser complete
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 20:30:42 -06:00
Tim Culverhouse
d22b2a89f3
chore: refactor build
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 20:17:26 -06:00
Tim Culverhouse
11b7b86913
core: functional App structure
...
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
2024-01-18 19:02:59 -06:00