aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Fix deb buildChristian Duerr2018-10-31
| | | | | | | | | | | | | 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.
* Update Windows configuration fileChristian Duerr2018-10-30
| | | | | | | | | | | | | | 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.
* Revert "Update Windows configuration file"Zac Pullar-Strecker2018-10-30
| | | | This reverts commit a9e03f1ae0b79353b78ac9e2e6503b42b12c7fb2.
* Update Windows configuration fileChristian Duerr2018-10-29
| | | | | | | | | | | | | | 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.
* Add cargo workspace, add winpty tests to CIZac Pullar-Strecker2018-10-29
|
* Explicitly detach from the console on exitZac Pullar-Strecker2018-10-28
| | | | Without this cmd won't redraw it's prompt when alacritty exits
* Refactor platform-specific codeChristian Duerr2018-10-27
|
* Relax matching of URL modifiersChristian Duerr2018-10-27
| | | | | | | | | | | | | | 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.
* Add official Gentoo package to install instructionsGeorgy Yakovlev2018-10-27
|
* Move gentoo install instructions, add windows to table of contentsZac Pullar-Strecker2018-10-27
|
* Fix change log entry for URL clickingChristian Duerr2018-10-22
|
* Add option to open URLs on clickChristian Duerr2018-10-22
| | | | | | | | | | | | | | | | | | | | | | This adds the option to automatically launch URLs with a specified program when clicking on them. The config option `mouse.url_launcher` has been added to specify which program should be used to open the URL. The URL is always passed as the last parameter to the specified command. It is not always desired for URLs to open automatically when clicking on them. To resolve this a new `modifiers` field has been introduced to the config, which allows specifying which keyboard modifiers need to be held down to launch URLs in the specified launcher. Some tests have been added to make sure that the edge-cases of the URL parsing are protected against future regressions. To make testing easier the parsing method has been moved into the `SemanticSearch` trait. The name of the trait has also been changed to just `Search` and it has been moved to `src/term/mod.rs` to fit the additional functionality. This fixes #113.
* Fix rotation of selection below 0Christian Duerr2018-10-20
| | | | | | | | | | | | | | Whenever the viewport is scrolled, the selection is rotated to make sure that it moves with the viewport. However this did not correctly handle the underflow that happens when the selection goes below 0. This resolves that problem for the selection by moving the internal line representation to an isize, thus correctly keeping track of the selection start/end points even when they have a negative index. Once the selection is converted to a span, the lines are clamped to the visible region. This fixes #1640 and fixes #1643.
* Add support for rendering cursors to rusttypeZac Pullar-Strecker2018-10-20
|
* Attach to the console of the parent process on windowsZac Pullar-Strecker2018-10-18
| | | | This fixes not seeing console output on windows release builds.
* build(package): acquire latest winptyOJ Kwon2018-10-17
|
* Fix appveyor badge linkChristian Duerr2018-10-16
|
* Allow the usage of scancodes in the configChristian Duerr2018-10-16
| | | | | | | | | | | | | | | This change should allow the usage of scancodes in the configuration file. When a VirtualKeyCode for glutin is not present, this should now allow the user to use the scancodes instead. If the user specifiecs a key with its scancode even though the key has a VirtualKeyCode, it should still work. The behavior of directly specifying a VirtualKeyCode should be unchanged by this. This fixes #1265.
* Add support for Windows (#1374)Zac Pullar-Strecker2018-10-16
| | | | | | | | | | | | | | | Initial support for Windows is implemented using the winpty translation layer. Clipboard support for Windows is provided through the `clipboard` crate, and font rasterization is provided by RustType. The tty.rs file has been split into OS-specific files to separate standard pty handling from the winpty implementation. Several binary components are fetched via build script on windows including libclang and winpty. These could be integrated more directly in the future either by building those dependencies as part of the Alacritty build process or by leveraging git lfs to store the artifacts. Fixes #28.
* Add statusline capabilities to TerminfoRunningDroid2018-10-14
|
* Extract manual installation instructionsChristian Duerr2018-10-14
| | | | | | | | | | | | | | | Alacritty's manual installation instructions take up a lot of space in the README and they are hard to navigate because there's a lot of information for specific distros which are irrelevant to most users. To improve this situation, the manual installation section has been moved to the `INSTALL.md` file. This allows keeping the readme to a minimum which just includes the straight-forward instructions required to install it on systems which provide packages for it. Having a separate file also makes it possible to add a full index just for the installation instructions, which makes it possible to skip sections which are irrelevant.
* fix erroneous indexed_color resultsRobert Martin Winterstein2018-10-07
|
* Fix invalid default configChristian Duerr2018-10-07
| | | | | | | | | | | | | Serde has problems deserializing yaml files which contain sections without any values. Since the `TERM` setting has been removed recently, the `env` section was completely empty leading to deserialization errors. To resolve this the `env` section has been commented-out by default, if the user wants to set a variable, it is now necessary to uncomment that section. Some minor tweaks have also been made to the existing `TERM` comments, to clearly indicate these are value examples instead of comments.
* Version 0.2.1Joe Wilm2018-10-03
|
* Add additional documentation to "background_opacity" optionTobias Sette2018-10-03
|
* Make the macOS bundle compatible osx 10.12Matthias Bussonnier2018-10-03
| | | | | | | | | | | On macOS 10.12.6, running `make app` creates a bundle that refuses to start (it complains application is only compatible with more recent versions of macOS). The binary works great when running it directly. To resolve this, the `MACOSX_DEPLOYMENT_TARGET` environment variable is now set automatically from the makefile. This allows building on macOS 10.12 and earlier, without negatively impacting the later versions of macOS.
* Drop terminal lock before renderingtrimental2018-09-30
| | | | | | | | The terminal lock is now dropped before rendering by storing all grid cells before clearing the screen. This frees the terminal to do other things since the lock is now free, which lead to a performance benefit with high throughput applications.
* Bump fontconfig dependenciesJon Gjengset2018-09-30
| | | | | The patch uses the Cargo.toml patch section to force a single downstream choice of freetype-sys instead of relying on forks of other crates. It also bumps the fontconfig/freetype dependencies in the process.
* Fix failing test with `bench` featureChristian Duerr2018-09-29
| | | | | | | | | | | | Using the `bench` feature, `cargo test` was failing since one of the benchmarks was running into a debug assertion for attempting to access a line with an index beyond the grid length. Since this issue was caused by the `len` property not being serialized and deserialized, the `#[serde(skip)]` attribute has been changed to `#[serde(default)]`. The ref-test has been edited to include the correct grid length for proper deserialization. This fixes #1604.
* Fix rendering of selections outside the viewportChristian Duerr2018-09-28
| | | | | | | | | | | | | | | | | When rendering selections with both start and end outside of the visible area, Alacritty would assume that both start and end are either above or below the viewport and not render the selection at all. To fix this the `buffer_line_to_visible` method now returns a `ViewportPosition` instead of an `Option<Line>`, this allows giving more feedback about where outside of the visible region the line is using the `ViewportPosition::Above` and `ViewportPosition::Below` variants. Using these newly introduced variants, a selection spanning the whole screen is now rendered if the selection should go from above the visible area to below it. This fixes #1557.
* Add note about package install on FreeBSDNiclas Zeising2018-09-28
|
* Fix deserialization of old decorations valuesChristian Duerr2018-09-28
| | | | | | | | | | The deprecated `window.decoration` values `true` and `false` were using the `visit_bool` visitor for serde. However, only the `str` visitor was ever called. To print the correct deprecation notice, the bool visitor has been removed and the warning has been added for the `"true"` and `"false"` str visitor.
* Fix selection start point lagging behind cursorChristian Duerr2018-09-27
| | | | | | | | | | | | | | | | Since the mouse start position has been the first movement event after the mouse button was held down, there have been some issues with the start point lagging behind the cursor because movement events were not reported from the initial position but there was a gap until movement starts reporting. To fix this whenever the mouse button is pressed, the position and cell side is stored on the `Mouse` struct. Because of this it does not matter anymore if the movement events are all reported and we can just start a selection using the stored position/side whenever there currently is no selection present. This fixes #1366
* Fix selection of empty linesChristian Duerr2018-09-26
| | | | | | | | | | | | When selecting multiple lines in Alacritty, there was an issue with empty lines not being copied. This behavior has been chanaged so empty lines should be correctly copied now. When copying content which ends with an empty line, Alacritty would copy an additional empty line. This has been resolved by only adding empty lines when the empty line was not in the last selected line.
* Implement CNL and CPL escape codes (#1590)Niklas Claesson2018-09-26
|
* Fix reset cursor terminfo escapeChristian Duerr2018-09-25
| | | | | | | | | The reset cursor terminal escape sequnce specified in the terminfo file was using xterm's `\E[2 q`. However this just resets the cursor to the block cursor shape. Since Alacritty supports the `\E[0 q` escape sequence for resetting the cursor shape to the original shape specified in the configuration file, the terminfo file has been altered to make use of this sequence instead.
* Add standalone terminfo definitionDaniel Eklöf2018-09-24
| | | | | | | | | | | | This replaces the current definitions, which depend on the system's 'xterm-256color' terminfo definition with the `alacritty` and `alacritty-direct` definitions. The new definitions are completely standalone. The default `TERM` value has been changed to be dynamically set based on the definitions installed on the system. Alacritty will try to use the `alacritty` definition first and fall back to `xterm-256color` if the `alacritty` definition is not present.
* Dynamically initialize grid storageChristian Duerr2018-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously Alacritty has initialized all lines in the buffer as soon as it is started. This had the effect that terminals which aren't making use of the scrollback buffer yet, would still consume large amounts of memory, potentially even freezing the system at startup. To resolve this problem, the grid is now dynamically resized in chunks of `1000` rows. The initial size is just the visible area itself, then every time lines are written to the terminal emulator, the grid storage is grown when required. With the worst-case scenario of having 100_000 lines scrollback configured, this change improves startup performance at the cost of scrolling performance. On my machine the startup changes from ~0.3 to ~0.2 seconds. The scrolling performance with large throughput is not affected, however it is slowed down when the number of lines scrolled are close to the 100_000 configured as scrollback. The most taxing benchmark I've found for this was running `yes | dd count=500 > 500.txt` (note the relatively small file size). This will cause a slowdown on the first run from 0.05s to 0.15s. While this is significant, it lines up with the time saved at startup. This fixes #1236.
* Allow copying selection to primary clipboardGris Ge2018-09-24
| | | | | | | | | | A new configuration option `save_to_clipboard` has been added to the `selection` section of the configuration. This allows writing every selection to the primary system clipboard when it is set to `true`. On linux the selection is still written to the selection clipboard, independent of the value of the `save_to_clipboard` setting.
* Implement config option for term colors 16..256Christian Duerr2018-09-23
| | | | | | | | | | | This adds a config option which allows setting terminal colors above the 0..16 range. Live config reload already works for this, so it is possible to change these colors the same way it works with the normal colors. If a color below 16 is specified, the configuration will throw an error, so the normal colors can't be overridden. This is just to prevent possible complications with the settings that already exist.
* Fix mesa rendering outside window borders on waylandtrimental2018-09-23
| | | | | | | | | | The mesa workaround has lead to some issues with rendering on Wayland. To resolve this problem, the mesa workaround has been restructured in a way which still allows clearing the screen before rendering without killing performance with the mesa driver. The performance is identical to the master brach and there have been no recorded regressions.
* Unify configuration file structureChristian Duerr2018-09-22
| | | | | | | | | | | | | | | | | | This changes a lot of small details in the configuration file in an attempt to unify its structure. These are some main guidelines used for this refactoring: - Specify that changes require restart consistently - Unify the specification of available field values - Provide clear distinction between description title and body Besides these guidelines used to unify minor details in the configuration file, the section on key configuration has been completely reworked in an attempt to reduce the amount of text used. This should make it possible to understand what's going on without having to read any text. The notice that modifiers are not supported has been removed from the mouse binding documentation.
* Fix config error with missing decorations fieldChristian Duerr2018-09-20
| | | | | | | | | | | | | The latest change to window decorations (3b46859eceea39afb8bbc760235cc15de78d3ff3) introduced a regression when running Alacritty without the `decorations` field specified in the configuration file. Since serde wasn't setup to fallback to the default, the complete config deserialization would fail. This resolves this issue by deserializing it to the default decorations value "Full". To make this setting a little more forgiving, this also introduces another change which ignores the case for the configuration options. So both `full` and `FuLl` are now accepted.
* Fix CHANGELOG.mdJoe Wilm2018-09-20
| | | | | The bracketed paste mode change isn't so much a fix as it is a change to address a potential security issue.
* Improve window.decorations options: (#1241)Joe Moon2018-09-20
| | | | | | | | The decorations config was changed from a bool to an enum. `full` has taken the place of `true`, and `none`, has replaced `false`. On macOS, there are now options for `transparent` and `buttonless`. These options are explained in both the CHANGELOG and in the configuration files.
* Update CHANGELOG for #1243Joe Wilm2018-09-20
|
* Fix Bracketed Paste Mode when input contains end sequence. (#1243)Aidan Epstein2018-09-20
| | | | | * Fix Bracketed Paste Mode when input contains end sequence. * Remove \x1b instead of just the paste end sequence.
* Merge pull request #1573 from ChrisMacNaughton/patch-1Joe Wilm2018-09-20
|\ | | | | Update snapcraft.yaml
| * Update snapcraft.yamlChris MacNaughton2018-09-20
|/ | | | | The existing snapcraft.yaml is pointing to a file that has been renamed, subsequently breaking the snap build. This change renames the .desktop file to match what is in-tree.
* Add changelog entry for 32-bit fixChristian Duerr2018-09-20
|