| Commit message (Collapse) | Author | Age |
| ... | |
| | |
|
| | |
|
| |
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
Resolves #478.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Also checks hup first since if the terminal is either not readable or
writable there's nothing for Alacritty to do.
Closes #480.
|
| |
|
|
|
|
|
|
| |
Quick test (works ~50%) is to press Ctrl+C followed by Ctrl+D.
Reproducible on Arch Linux with OpenGL from NVidia.
Fixes #228
|
| |
|
|
| |
Signed-off-by: Justin Charette <charetjc@gmail.com>
|
| |
|
|
| |
The previous format was extremely difficult for a human to parse.
|
| |
|
|
|
|
|
| |
Since we're emulating xterm, we need to support back_color_erase. If
this is found to cause any issues, please open a ticket on GitHub.
Resolves #85.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Xterm supports an extension to the CSI command `Erase in Display (ED)`,
under the command number 3. This command is used to clear the scrollback
buffer - e.g. anything not visible on the screen.
Since scrollback is not part of alacritty, the handler for this
command currently does nothing. If at some point scrollback is implemented,
the corresponding `match` arm can be modified to properly handle this.
For an example of a program which uses this command, run the `clear`
command (using ncurses 6.0). In a supported terminal such as
`gnome-terminal`, this will clear anything off of the screen from the
scrollback buffer. Before this change, `alacritty` would generate
an `Unhandled CSI` message.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the cursor color config to use the `text` and `cursor`
properties instead of the current `foreground` and `background`
properties. The latter names stop making sense when dealing with cursors
like a vertical bar or underscore. In the new system, the block,
underscore, or vertical bar would always take the color of `cursor`, and
the text would take the color of `text` when using a block, or keep its
normal color when using the underscore or vertical bar.
A warning is now emitted on startup when the old form of cursor color
config is used. This will be a hard error in the future.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes #416. Here's what I think is happening: at short `duration`s, the
VisualBell's [`completed` check](https://github.com/jwilm/alacritty/blob/3ce6e1e4b2924b0d432cbb3e62b4bbef88dd38ff/src/term/mod.rs#L377)
is returning `true` before we've actually had a chance to draw the "normal"
background color. I thought about driving this condition off of whether or not
`intensity` returns 0.0, but we may still miss a draw, I think. Perhaps the best
way to tackle this is to let `completed` lazily reset the VisualBell's
`start_time` (something @jwilm asked about when this feature originally landed),
and to only return `true` when the VisualBell's `start_time` is `None`. This
should effectively delay the final draw until after the VisualBell completes.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This addresses the issue where systems running Mesa drivers would be an
order of magnitude slower than other terminals. With this patch,
performance is nearly as good as with proprietary drivers. There is one
caveat where, since the cause of slowness hasn't been removed, there is
less time available for rendering on Mesa systems.
I've benchmarked this on my system (i5-3570 @ 3.4GHz, GTX 680) using
`time find /usr` with the following results:
* ~2.0 seconds average with proprietary driver
* ~2.3 seconds average with Mesa driver
cc #125
|
| | |
|
| |
|
|
| |
Resolves #26.
|
| |
|
|
|
|
|
|
| |
The color list needs to be updated by the parser, and this isn't
possible if it's on the config. This change makes sense semantically as
well since it's really part of the terminal state.
This is in preparation for OSC color parsing.
|
| | |
|
| |
|
|
| |
Much nicer error message than with Debug.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds support for a visual bell. Although the Handler in src/ansi.rs
warns "Hopefully this is never implemented", I wanted to give it a try. A new
config option is added, `visual_bell`, which sets the `duration` and `animation`
function of the visual bell. The default `duration` is 150 ms, and the default
`animation` is `EaseOutExpo`. To disable the visual bell, set its duration to 0.
The visual bell is modeled by VisualBell in src/term/mod.rs. It has a method to
ring the bell, `ring`, and another method, `intensity`. Both return the
"intensity" of the bell, which ramps down from 1.0 to 0.0 at a rate set by
`duration` and `animation`.
Whether or not the Processor waits for events is now configurable in order to
allow for smooth drawing of the visual bell.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix tests and add line select
Refactor BidirectionalIter to remove if blocks
Allow for cells tagged with WRAPLINE to continue expanding the selection
Reorganize config into structs
Add test coverage that callbacks are called
Cleanup mouse config
- Uses Duration type for ClickHandler::threshold
- Removes `action` property from ClickHandler--this can be added in a
backwards compatible way later on
- Renames ClickState::DblClick to DoubleClick
fixup! Cleanup mouse config
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Adds a configuration option `dimensions` which will set initial
window size by columns and lines. Changes to the config file will
require restart.
resolves #370
|
| |
|
|
| |
This fixes rendering underlines spanning multiple words.
|
| |
|
|
| |
Fixes #48
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new "Quit" action and binds it to Cmd-W and Cmd-Q on Mac OS in an
attempt to make Alacritty feel more like a "normal" citizen of the
operating system. Alternatives like Ctrl-D are okay, but I usually want
to leave my shells nested within Tmux open even if I exit my terminal.
It's also largely selfish: I've built up muscle memory over the years
that takes my fingers to Cmd-Q first (and I suspect I'm not the only
one).
The implementation for an exit is copied from `event.rs` which notably
is already tagged with a FIXME. It seems that `tty.rs` contains a
`process_should_exit` system to help handle a `SIGCHLD`, and it's
possible that these two exit implementations should be merged together.
I could probably tackle that as my next project.
As mentioned in #218, Alacritty can't really spawn other windows right
now, so I've tied in Cmd-W as simply another synonym for quitting until
that's implemented.
Fixes #218.
|
| |
|
|
|
|
| |
The saved cursor position could previously end up outside of the grid if
the terminal was resized to be smaller and then calling a restore.
Restore now ensures the cursor line and column are within grid bounds.
|
| | |
|
| |
|
|
|
| |
Switching between main and alt grids should no longer clear the main
grid.
|
| |
|
|
| |
Should make input processing much more easily tested.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This passes the vttest for save and restore cursor position. The
implementation was done according to:
http://www.vt100.net/docs/vt510-rm/DECSC.html
As of yet, there are a few things not supported by the terminal which
should otherwise be saved/restored.
vte was updated for a fix with CSI param parsing
|
| |
|
|
|
| |
There was no default supplied for Colors.cursor. This caused config
not specifying that property to break. Adding a default should fix that.
|