Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
Paste & PasteSelection are not quite the same. The former should be
pulling from the main clipboard where the latter does not.
|
|
|
|
|
|
|
|
Loading a glyph from the cache is a very hot operation in the renderer.
The original implementation would first check if a glyph was loaded and
then call `get()` which would have to search a second time. This showed
up as a very slow point in profiles.
This patch addresses glyph cache access in two ways: by using a faster
hasher optimized for small keys (fnv), and by using the entry API for
fetching a cached glyph. The `fnv` hasher is faster than the default and
is very efficient for small keys. Using the entry API on the HashMap
means only 1 lookup instead of two. The entry API has a downside where
the key needs to get cloned on fetches.
Reducing the GlyphKey width to 64-bits helps in both areas. Copying an
8-byte wide type is very cheap and thus limits downside of the entry
API. The small width also helps with the hasher performance.
Over all, this patch reduced typical render times by several hundred
microseconds on a 2013 MacBook Pro with a full screen terminal full of
text.
|
|
This commit implements the following syntax in the config file:
```yaml
shell:
program: /bin/bash
args:
- --login
- --norc
```
|
|
|
|
|
|
The logging macros should be used instead.
|
|
Logging initialization now shares the same error handling code as the
rest of the `run` function.
|
|
|
|
The logger implementation will now only show items from Alacritty.
Additionally, the module info is omitted from the log output. If the
origin of a log item must be found, it can easily be grepped for.
|
|
|
|
This uses the rustc-test crate, a copy of the standard test crate, to
dynamically create tests for each reference test. No need to remember to
update the macro, just add the directory to ref!
|
|
Implement the designation of graphic character sets G0-G3 to ASCII or the
Special character and line drawing glyphs. As well as the invokation/selection
of the character sets (shift in, shift out and lock shifting).
|
|
Proc_macro has been stable since 1.15.0, attribute no longer needed.
|
|
|
|
The wrapper had some transmutes still from an earlier implementation,
and they are not needed now.
|
|
Makes thin stroke rendering for darwin configurable by a new toplevel
key under `font:` in the config file. Defaults to false, has no impact
on non macos.
|
|
These changes provide support for disabling auto line wrap which is
currently default to on.
'tput rman' will now disable auto line wrap and alacritty will now not
automatically wrap lines.
'tput sman' will now (re)enable auto line wrap and alacritty will now
automatically wrap lines once it reaches the end of the line.
My testing showed this to work the same as gnome-terminal.
I should note that simply having ^[[7h or ^[[7l in a recording does not
enable and disable line wrapping. This is the same behavior as
gnome-terminal and xterm. Those cape codes come through as private
which are not handled yet. I behave this is the correct behavior.
|
|
One symptom of this bug was being unable to send C-c during `cat
/dev/urandom`.
cc #271
|
|
Resolves #23
Resolves #144
|
|
|
|
- Checks to make sure lines count coming from the pty are within a proper
range before doing scrolling.
- Sanitizes scroll region when being set.
- Changes panic for unimplemented screen clear to a print statement.
The first two changes ensure scrolling won't crash us. By sanitizing the
region on set we don't have to complicate the scroll code with limits,
mins, or maxes to ensure the scroll operation is within the range.
Checking if the lines is greater than the total region allows us to
simply clear the region and avoid subtracting large numbers from small
ones.
|
|
- Added note about the default file created if no path is found
|
|
- Update README to reflect changes
|
|
- Use $XDG_CONFIG_HOME/alacritty/alacritty.yml for loading the
configuration file falling back to $HOME/.config/alacritty/alacritty.yml
- Closes #203
|
|
print glutin events if --print-events is passed
|
|
|
|
cc #116
|
|
When debugging many issues, it's often very helpful to have the raw
glutin events printed out to stderr as they come in. This does that.
Note that since `glutin::Event` doesn't implement `Display`, we just use
rust's debugging output for now via `{:?}`.
|