Age | Commit message (Collapse) | Author |
|
The unicode character comment has been updated to correctly reference
the character instead of commenting on the variable that might be that
character.
|
|
Because rendering with macos works differently, the old underline cursor
is used for that. The cursor symbol has also been setup as a constant in
the font project.
|
|
As mentioned in jwilm/alacritty#931, it can be troublesome if a font has
an underline symbol outside of the glyph's bounding box. This can lead
to the underline disappearing at the bottom of the terminal.
As a solution a symbol from the private use area was used as the
character code for the underline symbol. Whenever this symbol is
encountered, instead of rendering it, a custom block is rendered.
In this implementation the block has the full character as width and
sits flush with the bottom of the glyph's bounding box. The height is
half the distance between the baseline and the bottom of the bounding
box.
|
|
|
|
When a selection was made, the last line of the selection did not
include a new line character when the line ending was selected. This
would occur if only one line was selected; if multiple lines were
selected, only the final line did not include a newline.
This commit updates the `string_from_selection` function to attempt to
append a newline character in all places where they are suitable.
Because of the simplification of newline insertion, several trait
implementations were removed.
|
|
|
|
This patch implements faux scrolling inside the alternate screen buffer.
Whenever the user scrolls up or down while the alternate screen buffer
is active, instead of actual scrolling three up/down arrow keys are
inserted.
|
|
The default cursor can now be configured through the cursor_style field
of the config. Valid options include Block, Underline, and Beam.
The default can be restored by sending \e[0q as in VTE terminals.
Live config reloading is supported for this parameter.
|
|
Outside of a scroll region, linefeed will still advances the line until
reaching the bottom row in other terminals. Alacritty now matches that.
|
|
Linefeeds should only move the cursor down if it's before the end of
the scroll region.
The "out of bounds" panic was triggered by linefeeds going off the
bottom of the screen when the scroll region end was above the cursor.
Note: https://vt100.net/docs/vt102-ug/chapter5.html
"Characters added outside the scrolling region do not cause the screen to scroll."
|
|
|
|
Sets the urgent WM flag when bell is emitted on X11 systems.
Additionally, the flag is cleared on focus because not all WMs clear it
automatically.
|
|
Since landing the patch adding transparency support to Alacritty,
there's been an issue where othewise solid background cells were also
being rendered partially transparent. Now, all filled background cells
are rendered fully opaque.
Some logic was added to support discarding filled backgrounds which had
the same color as the default background. This means that, if the
default background is #000 and a cell has that background, it will never
be rendered opaque. This may not be correct.
Note that many truecolor vim color schemes print spaces for default
colored background cells. Performance can be dramatically improved by
using ctermbg=NONE guibg=NONE to skip rendering those cells.
|
|
Adds support for font resizing at run-time. Three new actions are
introduced:
* IncreaseFontSize - Increases current font size by 1.0
* DecreaseFontSize - Decreases current font size by 1.0
* ResetFontSize - Resets font size to that specified in the
configuration.
The stock config files have example configuration for each which should
match gnome-terminal. For convenience, the config entries are:
- { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: IncreaseFontSize }
- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
|
Should prevent the messed up background colors that appear in some
situations (especially on tiling WMs).
|
|
Because there are so many clippy warnings in the current codebase,
this commit removes '#![cfg_attr(feature = "clippy", deny(clippy))]',
to make it easier to fix warnings incrementally.
|
|
|
|
|
|
When a scroll region is active with the cursor below the bottom of the
region, newlines should not cause the region to scroll.
A ref test was added for this situation to prevent regressions.
Thanks @hiciu for reporting and @nicm for the test case.
Resolves #745.
|
|
Resolves #634.
|
|
|
|
Now pass more vttests as well.
Resolves #123
cc #660 - screenshot there exhibited the problem, but issue is not
entirely about the background problem.
|
|
|
|
|
|
|
|
Add support for the VTE 'dim' flag, with additional support for
custom-themed dim colors. If no color is specified in the config, it
will default to 2/3 the previous (not a spec, but the value other
terminals seem to use).
The actual dimming behavior brings bright colors to normal and regular
colors to the new dim ones. Custom RGB values are not changed, nor are
non-named indexed colors.
|
|
|
|
Could be cleaned up a bit if there was a wrapper for Option<Selection>
that contained this flag.
Also fixes a few compiler warnings.
|
|
Unlike the regular selection that is by cell, these selection modes
highlight either semantic groupings or entire lines while the mouse is
dragged.
|
|
Fixes #611.
|
|
This escape sequence isn't officially documented anywhere, but is
supported by xterm and gnome-vte.
|
|
This ensures that the cleared cells are set to the proper background
color, which is the main usage of this escape sequence.
Fixes #612
|
|
Notable about this implementation is it takes a different approach for
managing cursor cells that previously. The terminal Grid is now
borrowed *immutably*. Instead of mutating Cells in the Grid, a list is
managed within the RenderableCellsIter. The cell at the cursor location
is skipped over, and instead cells are popped off a list of cursor
cells.
It would be good in the future to share some more code between the
different cursor style implementations for populating the cursor cells
list.
Supercedes #349.
|
|
Implements sending FocusIn/FocusOut events, as defined at
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-FocusIn_FocusOut
|
|
|
|
|
|
|
|
Accidentally broke it when refactoring.
|
|
Padding can be configured by using the `padding` field in the config
file, like so:
padding:
x: 2
y: 2
which would result in a 2px padding within each side of the window.
|
|
We previously had a hard-coded value for aligning glyphs within cells.
The font descent is now used, and the offset should be correct by
default.
|
|
Closes #494.
Resolves #529.
Resolves #512.
Resolves #493.
|
|
|
|
|
|
Adds implementations for TBC (tabulation clear) and HTS (set horizontal
tabstop).
|
|
|
|
|
|
back_color_erase should not set flags like bold, underline, etc.
|
|
|
|
It's not possible with DECCOLM to temporarily set 80 or 132 column mode
since the function is a toggle between the two. Instead, only the
additional affects are run in order to get closer to passing vttest.
vttest will never be perfect due to the column mode issue.
|
|
|