Daniel Eklöf
4c7dbee221
input: reduce utf8 buffer size
2019-06-22 20:40:28 +02:00
Daniel Eklöf
faf60108f1
input: add a key mapping table, mapping key syms to escape sequences
...
At the same time, also add support for the shift modifier.
2019-06-22 20:31:53 +02:00
Daniel Eklöf
8ecd69c500
input: stop key repeater when input focus is lost
2019-06-21 18:40:53 +02:00
Daniel Eklöf
dba3bb820d
csi: fix \e[B - it should move the cursor *down*, not up.
2019-06-21 15:34:10 +02:00
Daniel Eklöf
a537934e4b
csi: fix line clearing; the erase range 'end' is exclusive
2019-06-21 15:33:03 +02:00
Daniel Eklöf
3338b816a3
render: re-render cursor after ERASE (if cursor is in the erase range)
2019-06-21 15:31:35 +02:00
Daniel Eklöf
a50be28b9d
grid: implement DAMAGE_SCROLL
2019-06-21 14:29:15 +02:00
Daniel Eklöf
0ddd96de0d
render: break up grid_render()
2019-06-19 14:37:42 +02:00
Daniel Eklöf
304f15d696
Use a 'damage' list to communicate what needs to be updated
...
Instead of having each cell in the grid track it's own dirtiness, grid
operations now append "damage" to a list.
This list is consumed every time we render the grid.
This allows us to special case some operations, like erase (and in the
future, scroll).
2019-06-19 14:17:43 +02:00
Daniel Eklöf
10765687db
csi: dummy implementation of bright foreground/background colors
...
Re-use the regular colors for now
2019-06-19 11:12:45 +02:00
Daniel Eklöf
96731814da
grid: erase: memset() the entire range in one call
2019-06-19 10:58:24 +02:00
Daniel Eklöf
efc8cc4914
wip: initial scrolling support (no scrollback though)
2019-06-19 10:27:31 +02:00
Daniel Eklöf
71dde121e6
wip: initial input handling
2019-06-19 10:04:47 +02:00
Daniel Eklöf
3bd77bceb1
csi: CSI log messages are now single line
2019-06-18 21:55:39 +02:00
Daniel Eklöf
b8017a36de
vt: fix utf-8 bug: re-load 'current state' after processing a utf8 byte
2019-06-18 21:55:18 +02:00
Daniel Eklöf
a27868cd9f
vt: disable the worst spamming logging
2019-06-18 21:54:42 +02:00
Daniel Eklöf
50c43be0d9
grid: track both linear and row,col cursor
2019-06-17 21:15:20 +02:00
Daniel Eklöf
963b266cce
vt: handle cursor-at-right-edge
...
When printing to the right-most-cell, don't advance the
cursor. Instead, set a flag that indicates that the *next* print
should line-wrap.
2019-06-17 20:53:05 +02:00
Daniel Eklöf
4585df532c
wip: vt parsing: break out grid operating functions
2019-06-17 19:33:10 +02:00
Daniel Eklöf
6d5f5b9f7a
wip: vt parsing
2019-06-17 18:57:12 +02:00
Daniel Eklöf
733223dd0c
TIOCSWINSZ: set ws_xpixel and ws_ypixel
2019-06-16 16:47:09 +02:00
Daniel Eklöf
c5b60253a7
vt: cell now tracks attributes (bold, italic, underline etc)
2019-06-16 16:44:42 +02:00
Daniel Eklöf
2a4c08b941
wip: vt parsing: initial csi/osc dispatching
2019-06-15 22:22:44 +02:00
Daniel Eklöf
0e6aa61d69
Track cell foreground and background colors
2019-06-13 21:55:32 +02:00
Daniel Eklöf
9f9949aeec
Initial handling of multi byte characters
...
Use mblen() to calculate the byte count for each character.
2019-06-13 21:23:52 +02:00
Daniel Eklöf
e062ff7b97
Set XDG toplevel title
2019-06-13 20:43:52 +02:00
Daniel Eklöf
46e3c9d4d4
Render cursor
2019-06-13 20:40:03 +02:00
Daniel Eklöf
71703e7dc6
Use frame callback to rate-limit surface updates
2019-06-13 17:14:14 +02:00
Daniel Eklöf
9ccc8433c3
initial grid implementation
...
This allows us to render *something*, even though it's inefficient,
stupid and far far away from the real thing.
2019-06-13 16:24:35 +02:00
Daniel Eklöf
acda4d2d31
Set up pseudo terminal and fork slave
2019-06-13 15:19:10 +02:00
Daniel Eklöf
4de6a8ad38
main: handle window resize
2019-06-12 20:17:48 +02:00
Daniel Eklöf
68108ad7d8
shm: width/height must match
2019-06-12 20:17:35 +02:00
Daniel Eklöf
eafd5b26d3
add license
2019-06-12 20:10:12 +02:00
Daniel Eklöf
910c540ea9
initial commit: maps an XDG toplevel window
2019-06-12 20:08:54 +02:00