Age | Commit message (Collapse) | Author |
|
into cursor-config"
Revert merge of bright foreground color branch into cursor-config.
|
|
The documentation of the cursor fields has been completely reworked in
an attempt to make it more obvious what the specific fields in the
config are about.
|
|
cursor-config
|
|
|
|
This cleans up a bunch of code.
|
|
Updated the lockfile to make sure clippy is building properly with the
latest nightly toolchain.
|
|
Updated the version of some dependencies.
This also changes to a new clippy version so clippy can work with the latest nightly compiler again. Some issues created by new lints have been fixed.
|
|
|
|
|
|
There was no evidence for the existence of a bold background in the
termite config or the escape sequence specifications, so the bold
background has been removed again.
The changes to the documentation have not been reverted.
|
|
This adds a bright background color. It is currently unclear to me how
this would be used and it is likely that it is not possible to use the
bright background color at the moment.
The bright background color behaves the same way as the bright
foreground color and falls back to the background color when not set or
`draw_bold_text_with_bright_colors` is `false`.
|
|
It was requested in jwilm/alacritty#825 that it should be possible to
add an optional bright foreground color.
This is now added to the primary colors structure and allows the user to
set a foreground color for bold normal text. This has no effect unless
the `draw_bold_text_with_bright_colors` option is also enabled.
If the color is not specified, the bright foreground color will fall
back to the normal foreground color.
|
|
|
|
A link to all variants available as `key` has been added at the top of
the key bindings documentation, to help users with finding the right
place for mapping key codes.
|
|
This should fix #1020, #710, and #902
|
|
Up to this point the `reset_state` method of the `Term` struct has been
just a placeholder. This has been changed and all important state has
been reset.
The only state that has not been reset is stuff which is retrieved from
the config and isn't stored as default on the `Term` struct either. From
what I can tell these are all never changed though.
This fixes jwilm/alacritty#1033.
After doing some more testing trying to figure out how to fix that all
glyphs are messed up after doing `cat /dev/urandom`, I was able to
confirm that resetting `Term::cursor` fixes the glyphs and restores
everything to normal.
So this also fixes jwilm/alacritty#804.
|
|
The lockfile has been updated to make clippy work with nightly again.
|
|
This change initially spawns alacritty as in invisible window, this
makes it possible for the pty to already access data like `window_id`
without having to wait for the window manager to actually open the
window.
Even though `GlWindow::new` is blocking when `with_visibility(true)` is
used, the `window.show` call is not blocking. So calling `GlWindow::new`
and `with_visibility(false)`, then immediately calling `window.show`
will create a window and make it visible instantly.
|
|
Clippy failed to build with the latest nightly, so the lockfile has been
updated to allow the nightly builds to work again.
|
|
A link to all variants available as `key` has been added to the key
bindings documentation, to help users with finding the right place
for mapping key codes.
|
|
Repeated uses of `cp -r target/release/osx/Alacritty.app
/Applications/Alacritty.app` will result in copying Alacritty.app to
`/Applications/Alacritty.app/Alacritty.app`.
|
|
|
|
Commit 2920cbe7103f03a45080bfb7610bd7f481f36361 introduced a regression because of a typo in the chunk slice index for the `parse_rgb_color` call.
This fixes this issue by resetting it to the state it was before the faulty commit.
|
|
|
|
When pasting in non-bracketed more, all line endings (including
DOS-style CRLFs) get normalized to a single CR to simulate a keypress of
the <return> key.
|
|
When pasting in non-bracketed mode, LFs are replaced with CRs.
|
|
|
|
There were two bugs fixed in this commit:
1. `sgr_mouse_report` was not always called when `SGR_MOUSE` bit was set
due to calling `normal_mouse_report` instead of `mouse_report` in the
scrolling method.
2. SGR reporting was always going off the left mouse button state rather
than what was appropriate. This affected SGR scroll reporting since
it only behaves correctly for pressed events (final character 'M').
Resolves #698.
|
|
This commit adds clippy as a required step of the build process. To make
this possible, all existing clippy issues have been resolved.
|
|
Until now alacritty completely refuses to start when the config is broken
in any way. This behavior has been changed so the worst-case is always
that alacritty launches with the default configuration.
When part of the config is broken, alacritty shouldn't instantly try to
recover to the default config, but instead try to use defaults only for
the parts of the config which are broken. This has also been implemented
for most of the fields in the configuration. So it should be possible that
parts are broken, but the rest is still used for the configuration.
This fixes #954.
|
|
This replaces the `font_size_modifier` stored on the `Term` struct with a `font_size` field.
With this change it is not necessary anymore to calculate the new font size from a delta but the current font size is always stored directly on the `Term` struct.
As a result of this it is now possible to increase the font size by more than 127 steps at runtime. It also limits the minimum font size to 1, so issues with the `font_size_modifier` dropping far below font size 1 are resolved with this change.
This fixes #955.
|
|
|
|
ModifiersState is now passed to the mouse methods in `input.rs` as a
whole instead of just passing the `shift` state. This should make it a
bit easier to do changes in the future.
|
|
It seems like the common consensus is that even in mouse mode, the
selection should be cleared with a normal click.
If there is any reason why this should not be the case, please let me
know.
|
|
The tests were using a manually setup `ModifiersState`, to clean things
up a bit the `ModifiersState::default` method has been used to replace
this.
|
|
Three was still a test which passed the whole modifiers struct instead
of just the shift bool, this has been fixed.
|
|
The only mouse modifier required right now is the shift key, to prevent
passing around unnecessary state, only the shift state is passed to the
mouse processors now.
|
|
When an application takes control over the mouse, it usually disables
selection completely. However the common way to still make selection
possible is by allowing selection while the shift key is held down.
This feature is implemented here by making use of the new `modifiers`
field on mouse events with glutin/winit.
This fixes jwilm/alacritty#146.
|
|
This allows e.g. tmux to set the clipboard via the OSC 52 escape code.
|
|
The config documentation has been changed to make it clear which part of
the documentation is related to which setting.
The faux scrollback part of the `scroll_terminal` method has been
cleaned up by making use of the fact that the `codepoint + 1` can be
used in the escape sequence which is used for scrolling.
|
|
It is now possible to configure the amount of lines
scrolled with faux scrollback.
|
|
Some people have complained about the behavior of faux scrollback inside
of vim/tmux, however from what I can tell, alacritty behaves the same
way as other terminal emulators that support faux scrollback.
However there are a lot of terminal emulators that do not support faux
scrollback at all, which leads to people complaining about unusual
scroll behavior.
This is my proposal on how to solve this issue, by giving people that do
not like the VTE-Style faux scrolling the option to opt-out.
|
|
Resolves #973
|
|
Cleanup cursor handling code and support wide cursors
|
|
Some terminals have functionality around changing the type of mouse
cursor dynamically (arrow and text) based on which mode(s) the VTE is
in. For example, gnome-terminal changes the cursor from text (default)
to an arrow when opening programs that track mouse events (e.g. vim,
emacs, tmux, htop, etc.). The programs all allow using the mouse
interactively under some circumstances (like executing `set mouse=a` in
vim).
The programs that use an interactive mouse set the terminal mode to
different values. Though they're not entirely the same terminal mode
across programs, an emulator like vte (the library gnome-terminal
implements), changes the mouse cursor if the mouse mode is one of the
following:
- 1000: Mouse Click Tracking
- 1001: Mouse Highlight Tracking
- 1002: Mouse Cell Motion Tracking
- 1003: Mouse All Motion Tracking
- 1004: Mouse Focus Tracking
See https://github.com/GNOME/vte/blob/6acfa59dfcceef65c1f7e3570db37ab245f049c4/src/vteseq.cc#L708
for more information.
This commit adds functionality that changes the winit/glutin
`MouseCursor` when a mouse-listening mode of 1000-1004 is set. It
behaves similarly to when the window title changes.
|
|
This logic is applied in Term's ansi::Handler implementation
to avoid unnecessary allocations.
|
|
This resolves the remaining issue of #842.
|
|
Moved the custom cursor block on ft to the top, so no unnecessary
operations are executed when trying to draw a custom cursor glyph.
|
|
Previously it was assumed that the font_key for the normal font is
always 0, because this assumption was a bit of a stretch, now the
font_key provided with the glyph is used. This is always the bold,
italics or normal font associated with the cell.
|
|
With linux every box, line or underline should now have the
pixel-perfect size with any font at any size.
This uses the default font to get the size of the monospace box. It
assumes that the face 0 is always the primary font, if this is not the
case, this will probably break.
|