Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
All configuration fields now have fallback values which will be used if
the field is not present. This includes mouse, key bindings and platform
specific differences.
The mouse and key bindings are now filled by default, if the user
rebinds a default mapping, it will be overwritten. To unbind a default
binding, it can be mapped to `chars: ""`.
Since all platform differences can now be correctly handled by the
`src/config/mod.rs` code, it's no longer necessary to maintain separate
configuration files, so the `alacritty_macos.yml` and
`alacritty_windows.yml` have been deleted.
Fixes #40.
Fixes #1923.
|
|
When compiling ncurses with the `--enable-hard-tabs` option, it will
make use of tabs to speed up cursor movement. These tabs can be set at
positions which will overwrite existing characters.
Since these are only for movement and not supposed to write anything to
the terminal, it is now checked that a cell does not contain any
character before writing a tab to it.
This fixes #1933.
|
|
|
|
Since the Alacritty configuration file is written to the filesystem at
startup, this could create issues when the system does not have any free
space left.
To circumvent this problem, the default configuration is now returned
even when the configuration file could not be created. Instead of
crashing Alacritty, an error is now emitted.
Fixes #1936.
|
|
Since there was no check for the button state for semantic and line
selection, it was possible to trigger selection using the middle and
right mouse button. This has been resolved by explicitly checking for
the pressed button before starting these selections.
To further ensure that double and triple clicks are only triggered when
the same button is pressed multiple times, the last pressed button is
stored.
This fixes #1915.
|
|
|
|
This bumps the version number to 0.2.5 and prepares everything for the
next versioned release.
|
|
The general style for errors, warnings and info messages is to start
with a capitalized letter and end without a period. The main exception
is when dealing with nouns that are clearer with special case handling,
e.g. "macOS failed to work" or "ioctl is borked".
|
|
To make sure that CI builds produced by Travis work on all supported
versions of macOS and building Alacritty works on all supported
versions, the minimum macOS version has been set in the Makefile.
This sets the minimum macOS version to `10.11` as a reasonable
estimation based on other applications. If the exact version chosen
turns out to cause some issues, it can be changed in the future.
|
|
Various special characters and character combinations were not handled
correctly with URL detection. All these instances have been resolved and
covered by various tests to prevent future regressions.
Notable fixes include single quotes working more properly now (like
`'https://example.org'`) and IPv6 URL support.
Since URL detection is now more than just a few lines of code and it's
mostly unrelated to the `Term`, it has also been extracted into the
`src/url.rs` file together with all URL-related tests.
|
|
This limits the number of allowed schemes for the URL launcher, to
reduce the number of false-positives.
The accepted URL schemes are now:
- http
- https
- mailto
- news
- file
- git
- ssh
- ftp
This fixes #1727.
|
|
Some characters were not correctly stripped from the end of URLs with
the URL launching feature. The list of URL separator characters has been
extended to include '<', '>', '"', ' ', '{', '}', '|', '\\', '^' and
'`', following the URL specification defined here:
https://tools.ietf.org/html/rfc3987#page-13
Additionally, a list of characters which are always stripped from the
end of URLs has been setup to contain '.', ',', ';', ':', '?', '!', and
'/'.
This fixes #1753.
|
|
This fixes #1903.
|
|
|
|
To allow for a mouse binding to properly copy text, we should process
the mouse binding actions before thee built-in functionality, which will
clear the selection on right click, for example.
|
|
Update the Windows shell settings and comments so they look familiar to
Windows users, but comment out the shell settings for consistency with
Linux and Mac.
Stop checking COMSPEC when the configuration file does not specify which
shell to use, and just default to PowerShell.
|
|
|
|
|
|
The path `%APPDATA%` already includes the `Roaming` folder.
|
|
|
|
Alacritty is often spawned through the executable on
Windows. Since this doesn't allow access to the stderr
and crashes on startup are more common on Windows
due to the agent, it can be hard to troubleshoot issues.
This reports all Alacritty crashes through error popups
on Windows, which should resolve the problem of
crashing Alacritty instances without any error feedback.
|
|
The delay between the alt key and the actual received key might cause
certain key sequences to be missed, ex. when tmux has its escape-time
set to 0.
|
|
This adds the option to specify the color of the visual bell using the
`visual_bell.color` configuration setting.
This is done by rendering a big quad over the entire screen, which also
opens up options to draw other arbitrary rectangles on the screen in the
future.
|
|
This resolves issues with copy-pasting tabs by including them in the
pasted string.
Selection of tabs is still inconsistent with what might be expected
based on other terminal emulators, however the behavior hasn't
regressed.
This fixes https://github.com/jwilm/alacritty/issues/219.
|
|
Fixes #1897.
|
|
Certain programs like `htop` have problems with the number
of color pairs which are specified by the Alacritty terminfo
file.
By reducing the maximum number of color pairs to the value
which is specified by xterm-256color, these issues are
resolved.
This fixes #1862.
|
|
|
|
Instead of rendering zero-width characters as full characters, they are
now properly rendered without advancing the cursor.
Because of performance limitations, this implementation only supports up
to 5 zero-width characters per cell. However, as a result of this
limitation there should not be any performance impact.
This fixes #1317, fixes #696 and closes #1318.
|
|
|
|
This makes use of the common double-fork behavior to prevent
spawning zombie processes every time a URL is clicked.
|
|
|
|
We now request the user's attention in macOS when a visual bell
character is received. This manifests as the window jumping up and down
in the dock.
|
|
|
|
|
|
|
|
alternative
|
|
Since running `clear` inside of tmux doesn't actually clear any part of
the screen, but just resets the scrolling region, the warning and error
notices can't be removed without quitting tmux or Alacritty.
As a solution, a new action `ClearLogNotice` has been added which has
been bound to Ctrl+L by default. As a result, Ctrl+L can be used inside
of tmux to remove the messages, even though tmux doesn't clear the
screen.
This fixes #1811.
|
|
To make sure that all error and information reporting to the user is
unified, all instances of `print!`, `eprint!`, `println!` and
`eprintln!` have been removed and replaced by logging.
When `RUST_LOG` is not specified, the default Alacritty logger now also
prints to both the stderr and a log file. The log file is only created
when a message is written to it and its name is printed to stdout the
first time it is used.
Whenever a warning or an error has been written to the log file/stderr,
a message is now displayed in Alacritty which points to the log file
where the full error is documented.
The message is cleared whenever the screen is cleared using either the
`clear` command or the `Ctrl+L` key binding.
To make sure that log files created by root don't prevent normal users
from interacting with them, the Alacritty log file is `/tmp/Alacritty-$PID.log`.
Since it's still possible that the log file can't be created, the UI
error/warning message now informs the user if the message was only
written to stderr. The reason why it couldn't be created is then printed
to stderr.
To make sure the deletion of the log file at runtime doesn't create any
issues, the file is re-created if a write is attempted without the file
being present.
To help with debugging Alacritty issues, a timestamp and the error
level are printed in all log messages.
All log messages now follow this format:
[YYYY-MM-DD HH:MM] [LEVEL] Message
Since it's not unusual to spawn a lot of different terminal emulators
without restarting, Alacritty can create a ton of different log files.
To combat this problem, logfiles are removed by default after
Alacritty has been closed. If the user wants to persist the log of a
single session, the `--persistent_logging` option can be used. For
persisting all log files, the `persistent_logging` option can be set in
the configuration file
|
|
This adds the `window.dynamic_padding` option which allows disabling the
dynamic spread of additional padding around the grid's content.
Based on the feedback I've gotten so far and the fact that most other
terminal emulators do not seem to center the content inside themselves,
I've changed the default configuration option to disable centering of the grid.
This fixes #1778.
|
|
|
|
Since the version 0.2.2 had some significant breakage which affects a
large number of users, this 0.2.3 release aims at providing a stable
release which works for everyone without any major regressions.
|
|
The extra window padding was calculated in the renderer which lead to
problems with the paddings calculated in the `src/display.rs` and
`src/term/mod.rs`.
As a solution, every instance of `config.padding().x/y` has been removed
from the renderer (`src/renderer/mod.rs`), instead the padding is always
passed through from the `src/display.rs`.
The initial calculations during display creation and after resize then
are scaled appropriately and then the extra padding is calculated. As a
result every other location can just make use of the correctly
calculated `size_info.padding_x` and `size_info.padding_y`.
The documentation has been changed to clearly state that the padding is
scaled by DPI now.
This fixes #1773.
|
|
|
|
Currently alacritty always puts the grid at the top-left position of the
window. The only distance to the top-left window border is set by the
padding in the config.
However the grid always has a fixed size, and if a cell doesn't
completely fit the screen anymore, the padding at the bottom right
window corner can be significantly bigger than the padding at the top
left.
To fix this whenever there is more space left and there would usually be
a bigger padding at the bottom right, the space is now split up and
added to the padding.
This should always center the grid inside the window and make sure all
borders have the same padding from the text area.
This screenshot shows how it has been until now:
![Before](https://u.teknik.io/kRJwg.png)
Here is how it looks now:
![After](https://u.teknik.io/m4puV.png)
This fixes #1065.
|
|
The environment variables specified in the configuration file are now
all set before the window is created. As a result, this makes it
possible to add the `WINIT_HIDPI_FACTOR` env variable directly to the
Alacritty configuration.
This fixes https://github.com/jwilm/alacritty/issues/1768.
|
|
Some changes include:
• Use the with_hardware_acceleration function on the ContextBuilder to not require the discrete GPU
• Remove the LMenu and RMenu virtual key codes (winit 0.16.0 removed these because Windows now generates LAlt and RAlt instead
• Replace set_cursor_state with hide_cursor (winit 0.16.0 removed the set_cursor_state function)
• Replace GlWindow::hidpi_factor with GlWindow::get_hidpi_factor and change to expecting an f64
• Use the glutin/winit dpi size and position types where possible
Glutin's dpi change event has been implemented. All size events now
return logical sizes. As a result of that, the logical sizes are translated
in the `display::handle_rezize` method so DPI scaling works correctly.
When the DPI is changed, the glyph cache is updated to make use of the
correct font size again.
Moving a window to a different screen which is a different DPI caused a
racing condition where the logical size of the event was sent to the
`handle_resize` method in `src/display.rs`, however if there was a DPI
change event before `handle_resize` is able to process this message, it
would incorrectly use the new DPI to scale the resize event.
To solve this issue instead of sending the logical size to the
`handle_resize` method and then converting it to a physical size in
there, the `LogicalSize` of the resize event is transformed into a
`PhysicalSize` as soon as it's received. This fixes potential racing
conditions since all events are processed in order.
The padding has been changed so it's also scaled by DPR.
The `scale_with_dpi` config option has been removed. If it's not present
a warning will be emitted.
The `winit` dependency on Windows has been removed. All interactions
with winit in Alacritty are handled through glutin.
|
|
|