aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Resolves #733.Giorgio Gallo2018-01-07
| | | | When pasting in non-bracketed mode, LFs are replaced with CRs.
* Honour working dir on linux (#987)Christian Duerr2018-01-06
|
* Fix SGR mouse reportingJoe Wilm2018-01-06
| | | | | | | | | | | | | 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.
* Add clippy check to travisChristian Duerr2018-01-06
| | | | This commit adds clippy as a required step of the build process. To make this possible, all existing clippy issues have been resolved.
* Improve ability of alacritty to deal with broken configChristian Duerr2018-01-06
| | | | | | | | | | | | | 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.
* Prevent font_size_modifier from sinking too low (#994)Christian Duerr2018-01-05
| | | | | | | | | 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.
* Pass ModifiersState to mouse_moved method tooChristian Duerr2018-01-03
|
* Pass ModifiersState to mouse input as wholeChristian Duerr2018-01-03
| | | | | | 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.
* Always clear selectionChristian Duerr2018-01-03
| | | | | | | | 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.
* Use default modifier stateChristian Duerr2018-01-03
| | | | | | The tests were using a manually setup `ModifiersState`, to clean things up a bit the `ModifiersState::default` method has been used to replace this.
* Fix failed testsChristian Duerr2018-01-03
| | | | | Three was still a test which passed the whole modifiers struct instead of just the shift bool, this has been fixed.
* Update mouse modifiers to only pass shiftChristian Duerr2018-01-03
| | | | | | 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.
* Enable shift+select in mouse modeChristian Dürr2018-01-03
| | | | | | | | | | | 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.
* Add support for set-clipboard. (#970)Geert Jansen2018-01-02
| | | This allows e.g. tmux to set the clipboard via the OSC 52 escape code.
* Address feedbackChristian Duerr2018-01-02
| | | | | | | | | 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.
* Allow faux scroll amount configurationChristian Dürr2018-01-02
| | | | | It is now possible to configure the amount of lines scrolled with faux scrollback.
* Add config option for faux scrollbackChristian Dürr2018-01-02
| | | | | | | | | | | | | 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.
* Fix zombie children (#976)Joe Wilm2017-12-29
| | | Resolves #973
* Refactor populate cursor, fix-wide-cursor (#762)Oliver Uvman2017-12-24
| | | Cleanup cursor handling code and support wide cursors
* Change mouse cursor on terminal mode change (#865)Dustin2017-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Adding dynamic_title property to configuration (#819)Wesley Gahr2017-12-24
| | | | | This logic is applied in Term's ansi::Handler implementation to avoid unnecessary allocations.
* Fix stack overflow with too large glyphsJoe Wilm2017-12-24
| | | | This resolves the remaining issue of #842.
* Add box cursor to unfocused underline and beamChristian Duerr2017-12-24
| | | | | | | 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.
* Add custom box cursor for unfocused windowChristian Duerr2017-12-24
|
* Add custom beam cursorChristian Duerr2017-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Update comment to reference proper characterChristian Duerr2017-12-24
| | | | | | The unicode character comment has been updated to correctly reference the character instead of commenting on the variable that might be that character.
* Revert to old system for macosChristian Duerr2017-12-24
| | | | | | 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.
* Add custom underline cursorChristian Duerr2017-12-24
| | | | | | | | | | | | | | | As mentioned in jwilm/alacritty#931, it can be troublesome if a font has an underline symbol outside of the glyph's bounding box. This can lead to the underline disappearing at the bottom of the terminal. As a solution a symbol from the private use area was used as the character code for the underline symbol. Whenever this symbol is encountered, instead of rendering it, a custom block is rendered. In this implementation the block has the full character as width and sits flush with the bottom of the glyph's bounding box. The height is half the distance between the baseline and the bottom of the bounding box.
* Update glutin to v0.11chetgurevitch2017-12-23
|
* Update bitflags to v1Chet Gurevitch2017-12-23
|
* Update glutin to v0.10Chet Gurevitch2017-12-23
|
* Update dependenciesJoe Wilm2017-12-23
| | | | Also fixes warning from gl generator
* Assure that newlines are in selections (#777)Dustin2017-12-22
| | | | | | | | | | | When a selection was made, the last line of the selection did not include a new line character when the line ending was selected. This would occur if only one line was selected; if multiple lines were selected, only the final line did not include a newline. This commit updates the `string_from_selection` function to attempt to append a newline character in all places where they are suitable. Because of the simplification of newline insertion, several trait implementations were removed.
* Remove built crateJoe Wilm2017-12-22
| | | | | This became a support burden for me due to various compile and run time issues.
* Style nitsJoe Wilm2017-12-22
|
* Adapt pixel-based scrolling behaviorChristian Duerr2017-12-22
| | | | | | | | The pixel-based scrolling behavior has been adapted to be as similar to the line-based one as possible. I still have not been able to test this. But this should have a decent chance to at least kinda work.
* Fix faux scrolling for line-based touchpadsChristian Dürr2017-12-22
| | | | | | | | | | Touchpads which use line-based instead of pixel-based updates send partial scroll requests, so decimal numbers are important. The current implementation only really used scroll amounts that are either 1 or -1. This has been fixed and now the line-based touchpads should have very smooth scrolling, but the pixel-based approach is still WIP and completely untested.
* Implement faux scrollingChristian Duerr2017-12-22
| | | | | | | | This patch implements faux scrolling inside the alternate screen buffer. Whenever the user scrolls up or down while the alternate screen buffer is active, instead of actual scrolling three up/down arrow keys are inserted.
* Share LoadGlyph implementationsJoe Wilm2017-12-22
| | | | | | | Previously there were two separate but intended-to-be-identical implementations. Now the two implementations simply delegate to a single, shared method. This should help correctness issues in the future.
* Change LoadGlyph in LoaderApi to match RenderApiChristian Duerr2017-12-22
|
* Fix stack-overflow when creating a new atlasChristian Duerr2017-12-22
| | | | | | | | | | | | | | | | | When an atlas is full and the `insert` call fails, a new atlas should be created. This is the current strategy, however the atlas is put at the end of the vector, but the `current_atlas` index is set to 0, instead of the last element. This leads to a recursion where it keeps trying to insert into the full atlas at position 0 instead of the new at `atlas.len() - 1`. With this simple fix a stack-overflow is prevented because the new atlas is inserted as the first element, which then will be used correctly for loading new glyphs. This fixes jwilm/alacritty/issues/842 and might also solve jwilm/alacritty/issues/914 (I wasn't able to reproduce this with the latest master).
* Use consistent config deprecation message styleJoe Wilm2017-12-22
|
* Deprecate config top-level dimensions and paddingJoe Wilm2017-12-22
|
* Move dimensions and padding into window sectionRobert Günzler2017-12-22
|
* Add new window section to configRobert Günzler2017-12-22
| | | | Move/rename borderless into window_config as decorations
* Add 'borderless' optionRobert Günzler2017-12-22
| | | | | | Until winit gives us more capabilities in regard to window decorations this implements a simple switch that renders the window without any title bar or border
* Remove the launcher and set the locale/current directory in alacritty (#879)Theodore Dubois2017-12-13
|
* Add cursor style option (#928)Christian Duerr2017-12-03
| | | | | | | | The default cursor can now be configured through the cursor_style field of the config. Valid options include Block, Underline, and Beam. The default can be restored by sending \e[0q as in VTE terminals. Live config reloading is supported for this parameter.
* clippy: do and don't pass some things by reference as suggested ↵Matthias Krüger2017-12-03
| | | | (needless_pass_by_value, needless_borrow).
* clippy: use is_empty() instead of len() == 0 (warn(len_zero)).Matthias Krüger2017-12-03
|