summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-11-14TAGGING TESTv0.6.2issue-1786Christian Dürr
2018-11-14Fix i386 deb nameChristian Dürr
2018-11-13Fix i386 CI releasesChristian Duerr
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.
2018-11-13Bump lockfilev0.2.3Christian Duerr
2018-11-13Bump version to 0.2.3Christian Duerr
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.
2018-11-13Fix specifying 0 lines/columns in config fileChristian Duerr
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.
2018-11-12Fix incorrect padding calculationsChristian Duerr
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.
2018-11-12Fix macos config bold font documentationMihyaeru
2018-11-12Fix failing github releasesChristian Duerr
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.
2018-11-11Bump version number to v0.2.2v0.2.2Christian Duerr
2018-11-11Center the grid inside the windowChristian Duerr
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.
2018-11-11Set env variables before window startChristian Duerr
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.
2018-11-10Remove re-export of glutin size typesChristian Duerr
2018-11-10Upgrade Glutin to v0.19.0Matt Keeler
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.
2018-11-07Fix grammatical errors in READMEAlex Touchet
2018-11-07Capitalization changes in README.md (#1757)Alex Touchet
2018-11-06Add automated i386 docker builds to travisChristian Duerr
2018-11-04Update readme to link to the github releasesChristian Duerr
2018-11-04Fix clippy issuesChristian Duerr
This resolves all existing clippy issues and removes some old `allow` annotations which aren't neccesary anymore.
2018-11-03Fix windows tagged buildsbinariesChristian Duerr
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.
2018-11-03Publish Github releases from TravisMicha Gorelick
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.
2018-11-02Fix selection while scrollingNathan Lilienthal
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.
2018-11-01Fix default hollow cursor behavior with empty confChristian Duerr
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.
2018-11-01Add Instructions for installing on FreeBSDNiclas Zeising
Readd instructions for how to install pre-compiled alacritty packages on FreeBSD. This was accidentaly removed in cb6e065.
2018-11-01Fix mouse pasting in mouse mode with shiftChristian Duerr
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.
2018-11-01Rework cursor configurationChristian Duerr
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.
2018-11-01Update serde_yaml to 0.8Do Duy
This fixes jwilm/alacritty#1730.
2018-10-31 Add change log entry for configuration fixChristian Duerr
This updates the CHANGELOG.md to include information about the changes which have been made in #1634.
2018-10-31Sync .app bundle timestamp during buildDominic Evans
Fixes #1717.
2018-10-31Fix deb buildChristian Duerr
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.
2018-10-30Update Windows configuration fileChristian Duerr
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.
2018-10-30Revert "Update Windows configuration file"Zac Pullar-Strecker
This reverts commit a9e03f1ae0b79353b78ac9e2e6503b42b12c7fb2.
2018-10-29Update Windows configuration fileChristian Duerr
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.
2018-10-29Add cargo workspace, add winpty tests to CIZac Pullar-Strecker
2018-10-28Explicitly detach from the console on exitZac Pullar-Strecker
Without this cmd won't redraw it's prompt when alacritty exits
2018-10-27Refactor platform-specific codeChristian Duerr
2018-10-27Relax matching of URL modifiersChristian Duerr
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.
2018-10-27Add official Gentoo package to install instructionsGeorgy Yakovlev
2018-10-27Move gentoo install instructions, add windows to table of contentsZac Pullar-Strecker
2018-10-22Fix change log entry for URL clickingChristian Duerr
2018-10-22Add option to open URLs on clickChristian Duerr
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.
2018-10-20Fix rotation of selection below 0Christian Duerr
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.
2018-10-20Add support for rendering cursors to rusttypeZac Pullar-Strecker
2018-10-18Attach to the console of the parent process on windowsZac Pullar-Strecker
This fixes not seeing console output on windows release builds.
2018-10-17build(package): acquire latest winptyOJ Kwon
2018-10-16Fix appveyor badge linkChristian Duerr
2018-10-16Allow the usage of scancodes in the configChristian Duerr
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.
2018-10-16Add support for Windows (#1374)Zac Pullar-Strecker
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.
2018-10-14Add statusline capabilities to TerminfoRunningDroid
2018-10-14Extract manual installation instructionsChristian Duerr
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.