Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
Since the `scale_with_dpi` setting has been deprecated, but it hasn't
been removed from the config, Alacritty would print an error every time
it is started.
To resolve this problem, the option is removed from the default
configuration file.
|
|
filetime v0.2.3 fails to build on OpenBSD.
This fixes #1784 .
|
|
Since ansi.rs is mostly about control sequences sent by applications,
displaying all issues during parsing to the user can be annoying since
Alacritty might not actually do anything wrong.
To resolve this problem, all `warn!` logs in `src/ansi.rs` have been
decreased to the `debug!` level.
This fixes #1809.
|
|
|
|
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
|
|
There were some minor rounding issues in the padding codepath without
dynamic padding. These have been fixed, which should resolve issues with
blurry fonts on monitors with a fractional DPR.
This fixes https://github.com/jwilm/alacritty/issues/1806.
|
|
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.
|
|
|
|
The i386 CI releases were still using x86_64 platforms for building the
output binaries, as a result the produced binaries did not work properly
on i386 systems.
The maximum time of 50 minutes was exceeded when Alacritty tries to build
for all Linux platforms, this was because it was effectively compiling
Alacritty from scratch four times.
By making use of the previous build artifacts, it's possible to cut this
down to two compiles using the `--no-build` option of `cargo-deb`.
|
|
This applies all breaking and non-breaking dependency updates.
|
|
This fixes #1541.
|
|
|
|
|
|
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 logic during the initial spawning of the window was a bit twisted
up. This has been resolved and it should all work properly now, even
without a resize event at startup.
This fixes #1781.
|
|
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.
|
|
|
|
The manpage was incorrectly zipped up with the `-z` option, which
doesn't exist and created a 0-size file. Since Github does not accept
0-size files, this lead to the complete release deployment failing.
Changing this to use the `-c` option should fix this problem by creating
a proper non-zero size gzip file.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
This resolves all existing clippy issues and removes some old `allow`
annotations which aren't neccesary anymore.
|
|
The windows tagged builds currently fail some tests since the
winpty-agent.exe is inside the release directory instead of the debug
directory with tagged builds.
|
|
This release introduces some config to automatically build deploy a
binaries on the github release page using travis. The build only happens
when a commit is tagged and it uses the stable version of rust.
The main travis sections (install/script/before_deploy) have been
moved out of the .travis.yml to make it easier to read, maintain and
extend the different steps of the CI process.
Since checking for the Rust version in CI is enough to know if clippy
should be used or not, the environment variable `CLIPPY` has also been
removed, which further allowed simplifying the CI process.
Besides the executables, some auxillary files are now also published as
part of a release when they have changed since the last tagged Alacritty
release. This should make it clear for returning users when a new
version of a specific auxillary file is required.
Instead of using the 14.04 image which travis provides by default, an
18.04 docker image is used to build the output binaries for Linux.
This affects both the .deb and the .tar.gz binary.
The advantage of this is that while binaries compiled on 14.04, do not
work on 18.04, it does work the other way around. The generated .tar.gz
binary has been tested on 18.04, Debian, Fedora and Archlinux and all
systems were able to run it without any warnings or errors.
|
|
Properly update an active selection while scrolling the main scrollback buffer.
This does not affect the alternate screen buffer, since no scrollback buffer is
available.
|
|
The 2c37da48b580237ff48f5e841015134dd459b41d change introduced some
changes to the way cursor configuration is handled. However it did not
properly handle the default behavior of the hollow cursor when the
`cursor` field was not specified at all.
By implementing the `Default` trait for the `Cursor` struct in
`config.rs` manually, the default value of the `unfocused_hollow` field
has been corrected back to `true` when the `cursor` struct isn't present
at all.
|
|
Readd instructions for how to install pre-compiled alacritty packages on
FreeBSD. This was accidentaly removed in cb6e065.
|
|
It is now possible to paste in mouse mode again by making use of the
`shift` key while pressing the mouse button reserved for PasteSelection.
All mouse bindings are now also matching the modifiers in a relaxed way,
so extra modifiers are ignored.
|
|
There are a couple of cursor-related options in the Alacritty config
file now, however they aren't grouped together in any way.
To resolve this a new `cursor` field has been added where all cursor
configuration options (besides colors) have been moved.
The `custom_cursor_colors` option has also been removed, since it's not
necessary anymore. Simply making the `colors.cursor.*` fields optional,
allows overriding the cursor colors whenever one of them is present.
Like that the user doesn't have to think about a relation between two
separate configuration options.
This PR initially put the `hide_cursor_when_typing` variable under
`cursor.hide_when_typing`. However this field is completely unrelated to
the cursor, but instead relates to the mouse cursor.
Since the word `cursor` is already used for the active cell in the grid
of a terminal emulator, all occurences of the word `cursor` when talking
about the mouse have been replaced with the word `mouse`.
The configuration option has also been moved to
`mouse.hide_when_typing`, to make it clear what this option is changing.
This fixes #1080.
|
|
This fixes jwilm/alacritty#1730.
|
|
This updates the CHANGELOG.md to include information
about the changes which have been made in #1634.
|
|
Fixes #1717.
|
|
Since cargo-deb builds all members of the workspace by default, it is
necessary that the winpty subcrate can be built on all operating
systems, since it's not possible to have OS-specific workspace members.
To achieve this the crate has been changed to be empty by default on
non-windows systems. It might make sense to do something similar with
winpty-sys, but it's not strictly necessary at this point since we don't
directly depend on it.
This fixes #1716.
|
|
The Windows configuration file was outdated compared to the other
configuration files, since there were some major changes to the config
during the development of the Windows PR.
All changes between the Linux and Windows configuration file have been
removed, preserving platform-specific configuration defaults that were
intentionally changed.
Some minor changes have also been made to the Linux and macOS
configuration files, since there were some inconsistencies left.
This fixes #1692.
|
|
This reverts commit a9e03f1ae0b79353b78ac9e2e6503b42b12c7fb2.
|
|
The Windows configuration file was outdated compared to the other
configuration files, since there were some major changes to the config
during the development of the Windows PR.
All changes between the Linux and Windows configuration file have been
removed, preserving platform-specific configuration defaults that were
intentionally changed.
Some minor changes have also been made to the Linux and macOS
configuration files, since there were some inconsistencies left.
This fixes #1692.
|
|
|
|
Without this cmd won't redraw it's prompt when alacritty exits
|
|
|
|
To click on links in the alternate screen buffer, it is necessary that
the `shift` button is held down, otherwise mouse events are captured by
the application. However this would also require that `Shift` is added
to the `mouse.url.modifiers` option. Thus it is not possible anymore to
click on URLs unless the shift button is always held down.
To resolve this issue, the matching of modifiers has been relaxed. If a
modifier is specified in the config, it is always required to be held
down. However if a modifier is held down which is not specified, it is
still accpeted. This one-way relaxed matching allows clicking on links
with or without shift held down without having to make use of the
`mouse.url.modifiers` setting at all.
|