Age | Commit message (Collapse) | Author |
|
Adds logging at default verbosity when writing new config file.
|
|
Config loading was complexity that shouldn't be in main.
|
|
|
|
This reverts commit 3cdba291242cc1c1684bff7f8242262b1cdeb582.
On some systems, the target commit actually caused a massive performance
issue rather than fixing one.
|
|
* Refactor `key_bindings` documentation
* Document binding keys to a `command`
The ability for `key_bindings` to trigger a `command` was added in #566.
This commit documents their use, and gives a simple example.
Resolves #646.
|
|
The InstanceData type in the rendering subsystem was previously 16
floats which occupied a total of 64 bytes per instance. This meant that
for every character or background cell drawn, 64 bytes were sent to the
GPU. In the case of a 400x100 cell grid, a total of 2.5MB would be sent.
This patch reduces InstanceData's size to 26 bytes, a 60% improvement!
Using the above example for comparison, a worst case of 1MB would be
transferred.
The motivation for this patch comes from macOS. Once the terminal grid
would reach a certain size, performance experienced a sharp and dramatic
drop (render times would go from ~3ms to ~16ms). I don't want to
speculate too much on the underlying issue, but suffice it to say that
this patch alleviates the problem in my testing.
|
|
|
|
We had previously vendored a very early version of this package before
it was ever published.
|
|
Closes #636
Closes #592
|
|
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.
|
|
cc #68
|
|
|
|
Snapcraft makes Linux packaging very simple in a cross-distro
way. This adds the snapcraft.yaml file to setup a snap of
alacritty.
|
|
|
|
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 problem I had with issue #609, should be better documented.
|
|
Fixes #611.
|
|
This escape sequence isn't officially documented anywhere, but is
supported by xterm and gnome-vte.
|
|
This allows us to notice and report any regressions that have occured on
nightly, without requiring tests to pass on nightly for the entire build
to succeed.
The `fast_finish` flag will cause Travis to mark the build as successful
if the only builds still running are allowed to fail (e.g. `nightly`).
This allows us to manually inspect builds (or implement some form of
notifications) to see if any nightly regressions have occured, without
slowing down the overall build time.
|
|
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.
|
|
Previously, the fallback symbol font copied the style of the font from
the config. However, the only available style for the fallback symbol
font is Normal slant, Normal weight.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Implements sending FocusIn/FocusOut events, as defined at
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-FocusIn_FocusOut
|
|
* Parse cli arguments before configuration file
Parsing the cli arguments before the configuration file allows `--help`
and `--version` to be used even if the configuration file is broken.
* Add configuration file to command line arguments
This commit adds a new command line flag `--config-file` to override the default
configuration file location. If the specified file is unavailable,
Alacritty will quit instead of generating a fallback. If the specified
file is invalid, i.e. /dev/null, the compiled in defaults will be loaded
instead.
|
|
As it turns out, FreeType does not always provide glyph data in LCD mode
as we requested. We now correctly handle several common modes returned
from FreeType including Lcd, Mono, and Gray.
Note that we don't check number of grays at this time since it's
1. Almost always 256, according to FreeType docs
2. Not available in the Rust FreeType bindings being used
Resolves #515
Resolves #185
Resolves #482
|
|
|
|
|
|
Whites were being rendered very dark.
Resolves #503.
|
|
|
|
|
|
Ownership of the slave file descriptor is passed to the process::Stdio
structs and will be closed when they are dropped. If the slave fd is
closed explicitly then the next fd that is opened during the same scope
will get silently closed by the Stdio structs when they are dropped.
|
|
|
|
Based on option `command` in key binding section in config, e.g.
- { key: N, mods: Control|Shift, command: alacritty }
# or
- {
key: N,
mods: Control|Shift,
command: {
program: "alacritty",
args: ["-e", "vttest"],
}}
specified command will be run in the background on key press. Alacritty
doesn't wait for its result nor block IO.
|
|
|
|
|
|
|
|
Background:
If a shell process exits with children still alive (typically due to the
`disown` shell builtin), POLLHUP will not be sent to the master PTY file
descriptor. This is due to the fact that the disowned process still has
the slave PTY open as its STDIN, STDOUT, and STDERR.
If a disowned process never reads or writes from its file descriptors
(which is often the case for graphical applications), the event loop
will end up blocking on poll()/select() when not handling user input
received over the mio channel. When Alacritty shuts down and joins on the
event loop thread, there can never be any more input on the mio channel -
the main thread is no longer handling user keystrokes from the window. Unless
a disowned process happens to access its slave PTY file descriptors, the
event loop will never get the chance to deetect that it should exit.
This commit extends the `Msg` enum to include an explicit `Shutdown`
message, which ensures a clean shutdown (e.g. closing the 'recording'
file). This allows the select()/poll() call to remain blocking, instead
of needing to periodically check the shutdown state in between
timed-out calls.
Fixes #339
|
|
Any action that results in 0 bytes, such as pasting 0 bytes
from the clipboard hangs the terminal (`pbcopy </dev/null`
followed by ctrl-v), hangs the terminal on both macOS and
Linux. This ensures we never send 0 bytes.
|
|
|
|
|