aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-20WIPissue-1150fontconfigChristian Duerr
2018-01-31Update core-text (#1061)Jeff Muizelaar
This cleans up a bunch of code.
2018-01-30Update lockfileChristian Duerr
Updated the lockfile to make sure clippy is building properly with the latest nightly toolchain.
2018-01-26Update dependenciesgolem131
Updated the version of some dependencies. This also changes to a new clippy version so clippy can work with the latest nightly compiler again. Some issues created by new lints have been fixed.
2018-01-21Better character cell width with FreeType (#1029)Rachel K
This should fix #1020, #710, and #902
2018-01-18Implement `reset_state` of Term struct (#1035)Christian Duerr
Up to this point the `reset_state` method of the `Term` struct has been just a placeholder. This has been changed and all important state has been reset. The only state that has not been reset is stuff which is retrieved from the config and isn't stored as default on the `Term` struct either. From what I can tell these are all never changed though. This fixes jwilm/alacritty#1033. After doing some more testing trying to figure out how to fix that all glyphs are messed up after doing `cat /dev/urandom`, I was able to confirm that resetting `Term::cursor` fixes the glyphs and restores everything to normal. So this also fixes jwilm/alacritty#804.
2018-01-16Update lockfile (#1031)Christian Duerr
The lockfile has been updated to make clippy work with nightly again.
2018-01-15Spawn alacritty window as invisibleChristian Duerr
This change initially spawns alacritty as in invisible window, this makes it possible for the pty to already access data like `window_id` without having to wait for the window manager to actually open the window. Even though `GlWindow::new` is blocking when `with_visibility(true)` is used, the `window.show` call is not blocking. So calling `GlWindow::new` and `with_visibility(false)`, then immediately calling `window.show` will create a window and make it visible instantly.
2018-01-11Update lockfileChristian Duerr
Clippy failed to build with the latest nightly, so the lockfile has been updated to allow the nightly builds to work again.
2018-01-10Expand key binding config documentationChristian Duerr
A link to all variants available as `key` has been added to the key bindings documentation, to help users with finding the right place for mapping key codes.
2018-01-10Make Mac app installation steps idempotent (#1015)Paul Alvarez
Repeated uses of `cp -r target/release/osx/Alacritty.app /Applications/Alacritty.app` will result in copying Alacritty.app to `/Applications/Alacritty.app/Alacritty.app`.
2018-01-08Fix `ioctl` call failing on 32 bit architecture (#1011)Christian Duerr
2018-01-08Fix indexed color setting regressionNiklas Claesson
Commit 2920cbe7103f03a45080bfb7610bd7f481f36361 introduced a regression because of a typo in the chunk slice index for the `parse_rgb_color` call. This fixes this issue by resetting it to the state it was before the faulty commit.
2018-01-07Revert #987 behavior on macos (#1007)Christian Duerr
2018-01-07Non-bracketed paste support for DOS CRLFs.Giorgio Gallo
When pasting in non-bracketed more, all line endings (including DOS-style CRLFs) get normalized to a single CR to simulate a keypress of the <return> key.
2018-01-07Resolves #733.Giorgio Gallo
When pasting in non-bracketed mode, LFs are replaced with CRs.
2018-01-06Honour working dir on linux (#987)Christian Duerr
2018-01-06Fix SGR mouse reportingJoe Wilm
There were two bugs fixed in this commit: 1. `sgr_mouse_report` was not always called when `SGR_MOUSE` bit was set due to calling `normal_mouse_report` instead of `mouse_report` in the scrolling method. 2. SGR reporting was always going off the left mouse button state rather than what was appropriate. This affected SGR scroll reporting since it only behaves correctly for pressed events (final character 'M'). Resolves #698.
2018-01-06Add clippy check to travisChristian Duerr
This commit adds clippy as a required step of the build process. To make this possible, all existing clippy issues have been resolved.
2018-01-06Improve ability of alacritty to deal with broken configChristian Duerr
Until now alacritty completely refuses to start when the config is broken in any way. This behavior has been changed so the worst-case is always that alacritty launches with the default configuration. When part of the config is broken, alacritty shouldn't instantly try to recover to the default config, but instead try to use defaults only for the parts of the config which are broken. This has also been implemented for most of the fields in the configuration. So it should be possible that parts are broken, but the rest is still used for the configuration. This fixes #954.
2018-01-05Prevent font_size_modifier from sinking too low (#994)Christian Duerr
This replaces the `font_size_modifier` stored on the `Term` struct with a `font_size` field. With this change it is not necessary anymore to calculate the new font size from a delta but the current font size is always stored directly on the `Term` struct. As a result of this it is now possible to increase the font size by more than 127 steps at runtime. It also limits the minimum font size to 1, so issues with the `font_size_modifier` dropping far below font size 1 are resolved with this change. This fixes #955.
2018-01-03Pass ModifiersState to mouse_moved method tooChristian Duerr
2018-01-03Pass ModifiersState to mouse input as wholeChristian Duerr
ModifiersState is now passed to the mouse methods in `input.rs` as a whole instead of just passing the `shift` state. This should make it a bit easier to do changes in the future.
2018-01-03Always clear selectionChristian Duerr
It seems like the common consensus is that even in mouse mode, the selection should be cleared with a normal click. If there is any reason why this should not be the case, please let me know.
2018-01-03Use default modifier stateChristian Duerr
The tests were using a manually setup `ModifiersState`, to clean things up a bit the `ModifiersState::default` method has been used to replace this.
2018-01-03Fix failed testsChristian Duerr
Three was still a test which passed the whole modifiers struct instead of just the shift bool, this has been fixed.
2018-01-03Update mouse modifiers to only pass shiftChristian Duerr
The only mouse modifier required right now is the shift key, to prevent passing around unnecessary state, only the shift state is passed to the mouse processors now.
2018-01-03Enable shift+select in mouse modeChristian Dürr
When an application takes control over the mouse, it usually disables selection completely. However the common way to still make selection possible is by allowing selection while the shift key is held down. This feature is implemented here by making use of the new `modifiers` field on mouse events with glutin/winit. This fixes jwilm/alacritty#146.
2018-01-02Add support for set-clipboard. (#970)Geert Jansen
This allows e.g. tmux to set the clipboard via the OSC 52 escape code.
2018-01-02Address feedbackChristian Duerr
The config documentation has been changed to make it clear which part of the documentation is related to which setting. The faux scrollback part of the `scroll_terminal` method has been cleaned up by making use of the fact that the `codepoint + 1` can be used in the escape sequence which is used for scrolling.
2018-01-02Allow faux scroll amount configurationChristian Dürr
It is now possible to configure the amount of lines scrolled with faux scrollback.
2018-01-02Add config option for faux scrollbackChristian Dürr
Some people have complained about the behavior of faux scrollback inside of vim/tmux, however from what I can tell, alacritty behaves the same way as other terminal emulators that support faux scrollback. However there are a lot of terminal emulators that do not support faux scrollback at all, which leads to people complaining about unusual scroll behavior. This is my proposal on how to solve this issue, by giving people that do not like the VTE-Style faux scrolling the option to opt-out.
2017-12-29Fix zombie children (#976)Joe Wilm
Resolves #973
2017-12-24Refactor populate cursor, fix-wide-cursor (#762)Oliver Uvman
Cleanup cursor handling code and support wide cursors
2017-12-24Change mouse cursor on terminal mode change (#865)Dustin
Some terminals have functionality around changing the type of mouse cursor dynamically (arrow and text) based on which mode(s) the VTE is in. For example, gnome-terminal changes the cursor from text (default) to an arrow when opening programs that track mouse events (e.g. vim, emacs, tmux, htop, etc.). The programs all allow using the mouse interactively under some circumstances (like executing `set mouse=a` in vim). The programs that use an interactive mouse set the terminal mode to different values. Though they're not entirely the same terminal mode across programs, an emulator like vte (the library gnome-terminal implements), changes the mouse cursor if the mouse mode is one of the following: - 1000: Mouse Click Tracking - 1001: Mouse Highlight Tracking - 1002: Mouse Cell Motion Tracking - 1003: Mouse All Motion Tracking - 1004: Mouse Focus Tracking See https://github.com/GNOME/vte/blob/6acfa59dfcceef65c1f7e3570db37ab245f049c4/src/vteseq.cc#L708 for more information. This commit adds functionality that changes the winit/glutin `MouseCursor` when a mouse-listening mode of 1000-1004 is set. It behaves similarly to when the window title changes.
2017-12-24Adding dynamic_title property to configuration (#819)Wesley Gahr
This logic is applied in Term's ansi::Handler implementation to avoid unnecessary allocations.
2017-12-24Fix stack overflow with too large glyphsJoe Wilm
This resolves the remaining issue of #842.
2017-12-24Move custom cursor block on ftChristian Dürr
Moved the custom cursor block on ft to the top, so no unnecessary operations are executed when trying to draw a custom cursor glyph.
2017-12-24Use font_key provided with cursor glyphsChristian Dürr
Previously it was assumed that the font_key for the normal font is always 0, because this assumption was a bit of a stretch, now the font_key provided with the glyph is used. This is always the bold, italics or normal font associated with the cell.
2017-12-24Fix linux symbol sizeChristian Duerr
With linux every box, line or underline should now have the pixel-perfect size with any font at any size. This uses the default font to get the size of the monospace box. It assumes that the face 0 is always the primary font, if this is not the case, this will probably break.
2017-12-24Remove the launcher and set the locale/current directory in alacritty (#879)Theodore Dubois
2017-12-24Add box cursor to unfocused underline and beamChristian Duerr
Because some people have requested this change, the beam and underline cursors now also transform into an empty box when the terminal loses focus. Like this there is one unique symbol to indicate that a terminal is not currently focused.
2017-12-24Refactor darwin codeChristian Duerr
The ascent calculation on darwin was more complicated than it needed to be. By running a `.ceil()` instead of adding one, checking if it's 0, substracting if it is, and then flooring it, a few instructions could be shaved off.
2017-12-24Add custom box cursor for unfocused windowChristian Duerr
2017-12-24Format cursor code and add documentationChristian Duerr
As requested a few comments have been added to the darwin code. There also was an off by one error in the ascent calculation which has been corrected. The beam cursor width has also been tweaked to be slightly slimmer in general. All code added in this PR has also been run through the default rustfmt to make sure the formatting is okay.
2017-12-24Add custom cursors for macosChristian Duerr
The macos target now also supports the custom beam and underline cursors. The only thing left for this is now is testing and making sure it works with tiny fonts.
2017-12-24Add custom beam cursorChristian Duerr
In issue jwilm/asacritty#31 a few people complained about Beam cursor being weird with their fonts, so to make all cursors uniform in alacritty, a custom cursor has been added for the Beam too. The beam cursor's height is always the full height of the monospace font glyph bounding box. The width depends on the font size. It is calculated using the width of the cell and dividing it by two. The block is always aligned at the far-left of the cell. The implementation is identical to the one of the underline cursor, but it has been refactored so the glyphs are created in `lib.rs`, which can be used by darwin/macos to implement these features too. A small bug in the underline cursor has also been fixed, until now the width was just using the width of the unicode character. Now it should be using the full width of the monospace glyph bounding box with every font. Here are some screenshots for the Beam cursor: ![Small](https://u.teknik.io/v1QH3.png) ![Normal](https://u.teknik.io/RTlp2.png) ![Big](https://u.teknik.io/DLu2M.png) ![Huge](https://u.teknik.io/pSAFX.png)
2017-12-24Specify unicode code point explicitlyChristian Duerr
2017-12-24Update comment to reference proper characterChristian Duerr
The unicode character comment has been updated to correctly reference the character instead of commenting on the variable that might be that character.
2017-12-24Revert to old system for macosChristian Duerr
Because rendering with macos works differently, the old underline cursor is used for that. The cursor symbol has also been setup as a constant in the font project.