Commit graph

2104 commits

Author SHA1 Message Date
Lennard Hofmann
6b889564f7 Add logo, fixes #27
The SVG can be scaled to any size, thus we only provide the "minimum" of
PNGs as specified by XDG, see "Installing Application Icons" in
https://specifications.freedesktop.org/icon-theme-spec/
2020-06-27 21:23:50 +02:00
Daniel Eklöf
bae11000cc
term: reset: set title to the user configured title, not "foot" 2020-06-22 14:33:16 +02:00
Daniel Eklöf
e466063020
term: ptmx: don't abort on EAGAIN when trying to read from ptxm 2020-06-19 11:33:03 +02:00
Daniel Eklöf
c94cbdeb64
osc: set color: update both grids, but exclude scrollback 2020-06-14 09:34:46 +02:00
Daniel Eklöf
70c48091f3
changelog: language 2020-06-14 09:14:04 +02:00
Daniel Eklöf
dec796f525
sixel: if the client has specified a size, do not change that
We used to auto-resize images to always be a multiple of 6.

This is incorrect. The client may, for example, have specified a size
to align the image to a cell boundary, which may not be a multiple of
6.

Furthermore, in e.g. Jexer, which splits up an image into stripes,
that the next image would "overwrite" the previous one. Since the next
image was started on a cell row that the previous image had overflowed
into.
2020-06-11 18:40:52 +02:00
Daniel Eklöf
957e482f45
osc: 'Set Color' now updates already rendered cells in current grid
Since we don't have the original palette index in already rendered
cells, we compare the color *value*. If it matches, we assume this was
the color index used, and updates the cell's color.

Note that for performance reasons, we only update the current
grid. This is of course wrong, strictly speaking.

However, it is expected that _Set Color_ is used by full-screen
applications using the alternate grid.
2020-06-11 17:13:32 +02:00
Daniel Eklöf
6454e897ab
sixel: only use configured alpha when color matches the default bg 2020-06-10 18:52:53 +02:00
Daniel Eklöf
e0dc01f2ee
sixel: don't erase if cursor is *before* the image 2020-06-10 18:43:42 +02:00
Daniel Eklöf
cc5dedc259
sixel: do not reset palette after each image
A client can re-use the palette between images. Resetting the palette
breaks this.

Now we initialize the palette on demand, and resets it when the
palette size is changed (by the client).
2020-06-10 18:38:46 +02:00
Daniel Eklöf
8524e32bd5
doc: benchmark: move alacritty-unicode-random text from footnote to separate chapter 2020-06-09 20:59:48 +02:00
Daniel Eklöf
ae75a7933f
doc: benchmark: describe _why_ Alacritty is so fast in 'unicode-random' 2020-06-09 20:55:41 +02:00
Daniel Eklöf
7fb2da3cf9
main: log architecture at startup 2020-06-09 20:35:21 +02:00
Daniel Eklöf
8624a8823c
readme: fix mastodon link 2020-06-09 17:46:12 +02:00
Daniel Eklöf
aa331404b5
readme: add link to my mastodon account 2020-06-09 17:44:03 +02:00
Daniel Eklöf
12fda70402
sixel: log message: fix spelling 2020-06-09 17:34:04 +02:00
Daniel Eklöf
f72c982c89
osc: don't assert on \E]4 being followed by a ';'
This fixes a crash (in debug builds) that could be triggered by
e.g. cat:ing /dev/urandom.
2020-06-09 17:33:26 +02:00
Daniel Eklöf
bf57d0c606
csi: \E[3J: reset render.last_cursor.row if necessary
This fixes a crash that occurred when the last rendered cursor cell
had scrolled off screen, and \E[3J (clear scrollback) was executed.
2020-06-09 17:32:34 +02:00
Daniel Eklöf
fb001ee7a7
unicode combining: don't log overflow errors unless LOG_ENABLE_DBG == 1 2020-06-09 17:31:58 +02:00
Daniel Eklöf
e7d7b30c84
Merge branch 'faster-unicode' 2020-06-09 17:31:40 +02:00
Daniel Eklöf
9df7e8fa07
term: print_insert: early return 2020-06-09 17:31:28 +02:00
Daniel Eklöf
97221dd09b
vt: utf8-print: check width == 0 first, when deciding whether to do combining 2020-06-09 17:30:49 +02:00
Daniel Eklöf
9452aff020
vt: initial version of UTF-8 decoding built-in into the VT parser 2020-06-07 16:16:50 +02:00
Daniel Eklöf
0969b2ebd7
render: sixel: use pixman_image_composite32() 2020-06-06 14:22:54 +02:00
Daniel Eklöf
fd99b28beb
render: cell: reset clip region also when we're NOT rendering a glyph 2020-06-06 14:22:25 +02:00
Daniel Eklöf
21e9031420
sixel: don't erase image when printing text *next* to it. 2020-06-06 13:59:46 +02:00
Daniel Eklöf
a08e7f358f
sixel: fix asan runtime warning: left shift of 255 by 24 cannot...
be represented in type 'int'
2020-06-06 13:52:09 +02:00
Daniel Eklöf
f0980934d4
PKGBUILD: works on aarch64 too 2020-06-05 12:06:38 +02:00
Daniel Eklöf
c012a0ffc7
doc: benchmarks: results from my desktop 2020-06-05 11:07:30 +02:00
Daniel Eklöf
d8a83b500f
render: regression: don't let cell background overflow into the margins
This used to work before because we had a "global" clip region on the
text area, excluding the margins.

When we introduced per-cell clipping, this global clip region was
removed, and the background drawing code could now overflow into the
margins.

This fixes it by setting the cell clip region not just when rendering
a glyph, but before we render the cell background.
2020-06-05 08:10:38 +02:00
Daniel Eklöf
8b320ed296
render: re-write cell clipping to use pixman destination clipping
Our home rolled clip-to-cell code was, obviously, not correct.

The original problem was that we couldn't use pixman clipping since we
have multiple threads writing to the same pixman image, and thus there
would be races between the threads setting clipping.

The fix is actually simple - just instantiate one pixman
image (referencing the same backing image data) for each rendering
thread.
2020-06-04 15:39:19 +02:00
Daniel Eklöf
0d0df56796
Merge branch 'clip-to-cell' 2020-06-03 19:24:44 +02:00
Daniel Eklöf
6bf1287292
changelog: mention fix for glyphs overflowing into surrounding cells 2020-06-03 17:40:55 +02:00
Daniel Eklöf
bddd3fa384
render: do not allow glyphs to overflow into surrounding cells
This would be done cleaner by using destination clipping in pixman,
but since we have multiple threads rendering cells simultaneously,
that is not possible.

We also cannot use source clipping since we need to offset the
destination x,y coordinates with the glyph offsets.

So, roll our own clipping by not allowing the x,y offsets to go
outside the cell boundaries, and adjusting the glyph offset
accordingly.

Closes #21
2020-06-03 17:32:57 +02:00
Daniel Eklöf
159bfddb87
selection: fix typo when extending selection to cover double-width character 2020-06-03 17:31:41 +02:00
Daniel Eklöf
f1c8ccddde
Merge branch 'initial-tiocswinsz' 2020-06-03 17:29:45 +02:00
Daniel Eklöf
29630ac92e
term: set an initial TIOCSWINSZ right after opening the pty
Since foot is pretty aggressive about spawning the client early, it
was possible for a fast client to read a 0x0 terminal size. Not all
clients coped well.

Closes #20.
2020-06-02 19:59:28 +02:00
Daniel Eklöf
5ff9bd5c9d
meson/PKGBUILD: require fcft 2.1.1
We really want that ÖCD RGB/BGR fix...
2020-06-02 19:53:15 +02:00
Daniel Eklöf
8f37c839f3
render: draw hollow block cursor on top of the character, not the opposite 2020-06-02 18:22:55 +02:00
Daniel Eklöf
056fd4ffe0
selection: don't allow only half of double-width characters to be selected 2020-06-02 18:21:39 +02:00
Daniel Eklöf
bd565fe99b
doc: benchmark: add terminal version numbers as foot notes 2020-05-31 18:57:19 +02:00
Daniel Eklöf
bb79d8a8c4
Merge branch 'benchmark' 2020-05-31 13:17:26 +02:00
Daniel Eklöf
ded6ca6f22
doc: benchmark: right-align columns 2020-05-31 13:13:12 +02:00
Daniel Eklöf
05a6a9de44
doc: benchmark: fix typo 2020-05-31 13:11:19 +02:00
Daniel Eklöf
04013a2480
doc: benchmark: newlines 2020-05-31 13:09:03 +02:00
Daniel Eklöf
ee4b4b8646
doc: benchmark: newlines (?) 2020-05-31 13:08:44 +02:00
Daniel Eklöf
09d10b6a48
doc: benchmarks: shell highlighting of vtebench commands 2020-05-31 13:08:19 +02:00
Daniel Eklöf
6b2a59110d
readme: fix benchmark link 2020-05-31 13:07:53 +02:00
Daniel Eklöf
dd05b14c47
benchmarks: initial results 2020-05-31 13:07:01 +02:00
Daniel Eklöf
a4b1c09d58
scripts: benchmarking utility script 2020-05-31 12:43:03 +02:00