Commit graph

2134 commits

Author SHA1 Message Date
Daniel Eklöf
b56dbfa854
changelog: 'capturing mouse events' -> 'capturing the mouse' 2020-06-29 21:52:50 +02:00
Daniel Eklöf
a6d35d41c4
changelog: make it easier to read 2020-06-29 21:52:32 +02:00
Daniel Eklöf
2ea32398c3
term: use 'left_ptr' instead of 'hand2' as cursor when client is mouse grabbing 2020-06-29 21:51:53 +02:00
Daniel Eklöf
32e84fbc54
readme: nope, how about a png then? 2020-06-28 09:32:54 +02:00
Daniel Eklöf
dc5b6ca73a
readme: let's see if we can use the SVG in the top header 2020-06-28 09:32:16 +02:00
Daniel Eklöf
a3adc5724e
readme: link to PNG instead 2020-06-28 09:30:23 +02:00
Daniel Eklöf
81968b989e
readme: special thanks go to Ordoviz, for designing foot's logo 2020-06-28 09:29:20 +02:00
Daniel Eklöf
4cea9d910e
Merge branch 'logo' 2020-06-28 09:22:48 +02:00
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
deb61d20d8
grid: reflow: delete sixels that end up crossing the scrollback wrap around
Our sixel handling code requires sixels to *not* cross the scrollback
wrap around.

Until we've fixes the reflow code that split up such sixels (much like
we do when we generate a sixel), simply delete it.
2020-06-27 20:16:39 +02:00
Daniel Eklöf
ad8f293d96
terminfo: add remaining keypad keys 2020-06-27 20:05:50 +02:00
Daniel Eklöf
26528f6a73
input: add key mapping for XKB_KEY_KP_Decimal 2020-06-27 20:03:41 +02:00
Daniel Eklöf
9f31cfa764
terminfo: add ka1, ka3, kc1 and kc3 (upper/lower left/right keypad keys) 2020-06-27 19:39:27 +02:00
Daniel Eklöf
851e99f9a5
terminfo: kb2 (center keypad key) should be \EOu, not \EOE 2020-06-27 19:38:53 +02:00
Daniel Eklöf
644c8ef879
grid: add TODO, and an assert, that sixels must not cross wrap-around 2020-06-27 15:34:54 +02:00
Daniel Eklöf
1915e53629
sixel: improve descriptions of sixel_delete_* and sixel_overwrite_* 2020-06-27 15:32:33 +02:00
Daniel Eklöf
186a07c364
sixel: split -> overwrite 2020-06-27 15:29:47 +02:00
Daniel Eklöf
ae727e372a
term: erasing characters now splits sixels instead of deleting them 2020-06-27 15:22:31 +02:00
Daniel Eklöf
0953ffd2d3
sixel: delete/split: early(ier) exit when there aren't in sixel images
Avoid unnecessary wrap checks if the sixel image list is empty.
2020-06-27 14:43:29 +02:00
Daniel Eklöf
a25ff1ed84
Merge branch 'sixel-split' 2020-06-27 14:28:26 +02:00
Daniel Eklöf
f976df6f4d
changelog: sixel images can now be printed on 2020-06-27 14:27:49 +02:00
Daniel Eklöf
8cdfd03c4b
sixel: split: make pixman instantiation generic 2020-06-27 14:26:13 +02:00
Daniel Eklöf
cc65002539
sixel: never generate scrollback wrapping sixel images
Instead, split them up into two (or more...).

This makes the intersection detection logic *much* simpler.
2020-06-27 14:19:08 +02:00
Daniel Eklöf
e896c2fa55
sixel: refactor handling of wrap-around delete- and split regions
Handle these on a higher abstraction level. The low level functions
that detect sixel intersections now assume the specified rectangle (or
line region) does *not* cross the wrap-around.

This is ensured by detecting a wrap-around region before hand, and
splitting it up into two, non wrapping regions.
2020-06-27 13:56:13 +02:00
Daniel Eklöf
3715a37be9
sixel: split_by_rectangle: bug: typo in boundary check 2020-06-27 13:19:19 +02:00
Daniel Eklöf
37ceb65729
sixel: split: make sure relative row/column values are bounded 2020-06-27 13:18:54 +02:00
Daniel Eklöf
d9b7a85722
sixel: split: push front instead of back
This reduces the burden on sixel_split_by_rectangle(), which would
otherwise consider the newly added/splitted sixels. Since we already
know they aren't covered by the specified rectangle, we can skip that.
2020-06-27 12:50:39 +02:00
Daniel Eklöf
dfc205e706
sixel: add sixel_split_by_rectangle()
This function splits a sixel image into up to four pieces. The four
pieces correspond to the relative complement (set difference) of the
sixel image and the specified rectangle.

Use this function when (possibly) overwriting existing sixel images
when generating a new one, i.e. in sixel_unhook().
2020-06-27 12:45:22 +02:00
Daniel Eklöf
f4fcdbf38b
sixel: hopefully fix erasing of scrollback wrap-around sixels
If a sixel image crossed the scrollback wrap around, the logic that
detected whether a row, or a row range, intersected with the sixel was
incorrect.
2020-06-27 11:00:28 +02:00
Daniel Eklöf
32e70263f9
wayland: use xdg_output's description if there's no 'model' 2020-06-25 17:30:51 +02:00
Daniel Eklöf
bc82d4ee28
sixel: wip: split up image being overwritten, rather than erasing it
Instead of completely erasing a sixel image when it is being
"overwritten" (text is printed somewhere within the image, or another
sixel image is emitted within the first image), split it up into up to
four pieces: 'above', 'below', 'to-the-left' and 'to-the-right'.

This is currently very un-optimized, but seems to produce correct
results.
2020-06-23 21:07:12 +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