<feed xmlns='http://www.w3.org/2005/Atom'>
<title>r-alacritty.git/alacritty_terminal/tests, branch experimental</title>
<subtitle>My custom-patched version of alacritty.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/'/>
<entry>
<title>Add Sixel support</title>
<updated>2021-08-17T13:44:40+00:00</updated>
<author>
<name>Ayose</name>
<email>ayosec@gmail.com</email>
</author>
<published>2021-03-10T20:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=0fd3793a963015e8f91021e35dbb2169d15c3211'/>
<id>0fd3793a963015e8f91021e35dbb2169d15c3211</id>
<content type='text'>
Fixes #910
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #910
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix out of order terminal query responses</title>
<updated>2021-04-17T23:20:13+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2021-04-17T23:20:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=28abb1f9c78ab316126bdf94e2ca12f034f1d8fd'/>
<id>28abb1f9c78ab316126bdf94e2ca12f034f1d8fd</id>
<content type='text'>
This forces all responses made to the PTY through the indirection of the
UI event loop, making sure that the writes to the PTY are in the same
order as the original requests.

This just delays all escape sequences by forcing them through the event
loop, ideally all responses which are not asynchronous (like a clipboard
read) would be made immediately. However since some escapes require
feedback from the UI to mutable structures like the config (e.g. color
query escapes), this would require additional locking.

Fixes #4872.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This forces all responses made to the PTY through the indirection of the
UI event loop, making sure that the writes to the PTY are in the same
order as the original requests.

This just delays all escape sequences by forcing them through the event
loop, ideally all responses which are not asynchronous (like a clipboard
read) would be made immediately. However since some escapes require
feedback from the UI to mutable structures like the config (e.g. color
query escapes), this would require additional locking.

Fixes #4872.</pre>
</div>
</content>
</entry>
<entry>
<title>Unify the grid line indexing types</title>
<updated>2021-03-30T23:25:38+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2021-03-30T23:25:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=3bd5ac221ab3b122962063edd1f4c10f9f2d117f'/>
<id>3bd5ac221ab3b122962063edd1f4c10f9f2d117f</id>
<content type='text'>
Previously Alacritty was using two different ways to reference lines in
the terminal. Either a `usize`, or a `Line(usize)`. These indexing
systems both served different purposes, but made it difficult to reason
about logic involving these systems because of its inconsistency.

To resolve this issue, a single new `Line(i32)` type has been
introduced.  All existing references to lines and points now rely on
this definition of a line.

The indexing starts at the top of the terminal region with the line 0,
which matches the line 1 used by escape sequences. Each line in the
history becomes increasingly negative and the bottommost line is equal
to the number of visible lines minus one.

Having a system which goes into the negatives allows following the
escape sequence's indexing system closely, while at the same time making
it trivial to implement `Ord` for points.

The Alacritty UI crate is the only place which has a different indexing
system, since rendering and input puts the zero line at the top of the
viewport, rather than the top of the terminal region.

All instances which refer to a number of lines/columns instead of just a
single Line/Column have also been changed to use a `usize` instead. This
way a Line/Column will always refer to a specific place in the grid and
no confusion is created by having a count of lines as a possible index
into the grid storage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously Alacritty was using two different ways to reference lines in
the terminal. Either a `usize`, or a `Line(usize)`. These indexing
systems both served different purposes, but made it difficult to reason
about logic involving these systems because of its inconsistency.

To resolve this issue, a single new `Line(i32)` type has been
introduced.  All existing references to lines and points now rely on
this definition of a line.

The indexing starts at the top of the terminal region with the line 0,
which matches the line 1 used by escape sequences. Each line in the
history becomes increasingly negative and the bottommost line is equal
to the number of visible lines minus one.

Having a system which goes into the negatives allows following the
escape sequence's indexing system closely, while at the same time making
it trivial to implement `Ord` for points.

The Alacritty UI crate is the only place which has a different indexing
system, since rendering and input puts the zero line at the top of the
viewport, rather than the top of the terminal region.

All instances which refer to a number of lines/columns instead of just a
single Line/Column have also been changed to use a `usize` instead. This
way a Line/Column will always refer to a specific place in the grid and
no confusion is created by having a count of lines as a possible index
into the grid storage.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move renderable cell transformation to alacritty</title>
<updated>2021-01-24T21:45:36+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2021-01-24T21:45:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=530de00049c2afcc562d36ccdb3e6afa2fe396a5'/>
<id>530de00049c2afcc562d36ccdb3e6afa2fe396a5</id>
<content type='text'>
This refactors a large chunk of the alacritty_terminal API to expose all
data necessary for rendering uniformly through the `renderable_content`
call. This also no longer transforms the cells for rendering by a GUI
but instead just reports the content from a terminal emulation
perspective. The transformation into renderable cells is now done inside
the alacritty crate.

Since the terminal itself only ever needs to know about modified color
RGB values, the configuration for colors was moved to the alacritty UI
code.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This refactors a large chunk of the alacritty_terminal API to expose all
data necessary for rendering uniformly through the `renderable_content`
call. This also no longer transforms the cells for rendering by a GUI
but instead just reports the content from a terminal emulation
perspective. The transformation into renderable cells is now done inside
the alacritty crate.

Since the terminal itself only ever needs to know about modified color
RGB values, the configuration for colors was moved to the alacritty UI
code.</pre>
</div>
</content>
</entry>
<entry>
<title>Use dynamic storage for zerowidth characters</title>
<updated>2020-11-05T04:45:14+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-11-05T04:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=ec42b42ce601808070462111c0c28edb0e89babb'/>
<id>ec42b42ce601808070462111c0c28edb0e89babb</id>
<content type='text'>
The zerowidth characters were conventionally stored in a [char; 5].
This creates problems both by limiting the maximum number of zerowidth
characters and by increasing the cell size beyond what is necessary even
when no zerowidth characters are used.

Instead of storing zerowidth characters as a slice, a new CellExtra
struct is introduced which can store arbitrary optional cell data that
is rarely required. Since this is stored behind an optional pointer
(Option&lt;Box&lt;CellExtra&gt;&gt;), the initialization and dropping in the case
of no extra data are extremely cheap and the size penalty to cells
without this extra data is limited to 8 instead of 20 bytes.

The most noticible difference with this PR should be a reduction in
memory size of up to at least 30% (1.06G -&gt; 733M, 100k scrollback, 72
lines, 280 columns). Since the zerowidth characters are now stored
dynamically, the limit of 5 per cell is also no longer present.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The zerowidth characters were conventionally stored in a [char; 5].
This creates problems both by limiting the maximum number of zerowidth
characters and by increasing the cell size beyond what is necessary even
when no zerowidth characters are used.

Instead of storing zerowidth characters as a slice, a new CellExtra
struct is introduced which can store arbitrary optional cell data that
is rarely required. Since this is stored behind an optional pointer
(Option&lt;Box&lt;CellExtra&gt;&gt;), the initialization and dropping in the case
of no extra data are extremely cheap and the size penalty to cells
without this extra data is limited to 8 instead of 20 bytes.

The most noticible difference with this PR should be a reduction in
memory size of up to at least 30% (1.06G -&gt; 733M, 100k scrollback, 72
lines, 280 columns). Since the zerowidth characters are now stored
dynamically, the limit of 5 per cell is also no longer present.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for single line terminals</title>
<updated>2020-09-27T22:36:08+00:00</updated>
<author>
<name>ii41</name>
<email>23465321+ii41@users.noreply.github.com</email>
</author>
<published>2020-09-27T22:36:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=a754d06b44139b85e8b34a71ece4477cb1caa85e'/>
<id>a754d06b44139b85e8b34a71ece4477cb1caa85e</id>
<content type='text'>
This changes the minimum terminal dimensions from 2 lines and 2 columns,
to 1 line and 2 columns.

This also reworks the `SizeInfo` to store the number of columns and
lines and consistently has only the terminal lines/columns stored,
instead of including the message bar and search in some places of the
Alacritty renderer/input.

These new changes also make it easy to properly start the selection
scrolling as soon as the mouse is over the message bar, instead of
waiting until it is beyond it.

Fixes #4207.

Co-authored-by: Christian Duerr &lt;contact@christianduerr.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes the minimum terminal dimensions from 2 lines and 2 columns,
to 1 line and 2 columns.

This also reworks the `SizeInfo` to store the number of columns and
lines and consistently has only the terminal lines/columns stored,
instead of including the message bar and search in some places of the
Alacritty renderer/input.

These new changes also make it easy to properly start the selection
scrolling as soon as the mouse is over the message bar, instead of
waiting until it is beyond it.

Fixes #4207.

Co-authored-by: Christian Duerr &lt;contact@christianduerr.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add escape to report text area size</title>
<updated>2020-08-28T22:26:03+00:00</updated>
<author>
<name>Ayose Cazorla</name>
<email>ayosec@gmail.com</email>
</author>
<published>2020-08-28T22:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=cdf5e51e742d67d1b96940a5096210725a1e51e8'/>
<id>cdf5e51e742d67d1b96940a5096210725a1e51e8</id>
<content type='text'>
This implements the escapes `CSI 14 t` and `CSI 18 t` which report the
text area size in pixels and characters.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements the escapes `CSI 14 t` and `CSI 18 t` which report the
text area size in pixels and characters.</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for double underlines</title>
<updated>2020-08-12T16:05:22+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-08-12T16:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=b904207b1979bb86f86c2a7db1720ce04571508a'/>
<id>b904207b1979bb86f86c2a7db1720ce04571508a</id>
<content type='text'>
This adds support for double underlines using the colon separated escape
sequence `CSI 4 : 2 m`.

Alacritty will now also always fallback to the normal underline in case
any of the other underlines like the undercurl are specified. The escape
sequence `CSI 4 : 0 m` can now be used to clear all underlines.

Some terminals support `CSI 21 m` for double underline, but since
Alacritty already uses that as cancel bold which is a little more
consistent, that behavior has not changed. So the colon separated
variant must be used.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds support for double underlines using the colon separated escape
sequence `CSI 4 : 2 m`.

Alacritty will now also always fallback to the normal underline in case
any of the other underlines like the undercurl are specified. The escape
sequence `CSI 4 : 0 m` can now be used to clear all underlines.

Some terminals support `CSI 21 m` for double underline, but since
Alacritty already uses that as cancel bold which is a little more
consistent, that behavior has not changed. So the colon separated
variant must be used.</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for colon separated SGR parameters</title>
<updated>2020-08-07T22:37:23+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-08-07T22:37:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=576252294d09c1f52ec73bde03652349bdf5a529'/>
<id>576252294d09c1f52ec73bde03652349bdf5a529</id>
<content type='text'>
This implements the colon separated form of SGR 38 and 48.

Fixes #1485.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements the colon separated form of SGR 38 and 48.

Fixes #1485.</pre>
</div>
</content>
</entry>
<entry>
<title>Add regex scrollback buffer search</title>
<updated>2020-07-09T21:45:22+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-07-09T21:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty.git/commit/?id=46c0f352c40ecb68653421cb178a297acaf00c6d'/>
<id>46c0f352c40ecb68653421cb178a297acaf00c6d</id>
<content type='text'>
This adds a new regex search which allows searching the entire
scrollback and jumping between matches using the vi mode.

All visible matches should be highlighted unless their lines are
excessively long. This should help with performance since highlighting
is done during render time.

Fixes #1017.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a new regex search which allows searching the entire
scrollback and jumping between matches using the vi mode.

All visible matches should be highlighted unless their lines are
excessively long. This should help with performance since highlighting
is done during render time.

Fixes #1017.</pre>
</div>
</content>
</entry>
</feed>
