aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config
Commit message (Collapse)AuthorAge
* add logo key prefix and alt behavior configuration optionsexperimentalJosh Rahm2021-10-25
|
* Make keybindings more consistent with libtermkeyJosh Rahm2021-10-11
|
* Add some more terminal code stuff.Josh Rahm2021-10-06
| | | | | | | | | | | | - The <Hyper> key now sends <C-M-S-Insert> to make keybinding easier. - the <Ctrl> key with a multibyte character now prepends <C-M-S-Insert> - <Shift-Space> now returns the "\x1b[32;2u" - <Shift-Alt> now sends ""\x1b\x1b[32;2u""
* Watch non-canonical path for config symlinksNaïm Favier2021-08-27
| | | | | | | | | | To make it possible to detect the replacement of the configuration file when it is a symlink, the symlinks path has to be observed in addition to the canonicalized path. That way changes to either file will trigger a live config reload. Multiple layers of symlinks would still not get detected when any symlink other than the configuration file itself is replaced, but this patch should cover most realistic usage scenarios.
* Fix 'background_opacity' deprecationChristian Duerr2021-08-23
| | | | | | | | | | During the deprecation of the 'background_opacity' field, it was incorrectly renamed to 'window_opacity'. This changes that back to ensure the old field still works and a warning is emitted accordingly. See the original regression here: https://github.com/alacritty/alacritty/commit/c24d7dfd0d2d8849f0398d7cb1a65d6562ee7a0d#diff-f92f0b1ad70a7b75b7266f3c9e569025e023d186814aa88c2b690800850ccb78L72-R73 Fixes #5437.
* Migrate CLI config to structoptChristian Duerr2021-08-18
| | | | | | | | | | | | | While structopt also uses clap under the hood, the configuration through annotations allows for significantly more maintainable and concise CLI definition. This will also make it far easier to have platform-specific options, which is problematic with clap since no individual methods can be removed from its builder. The change in Alacritty's CLI has been kept to a minimum with the only significant changes being the `--version` flag listed before the `-v` flag and the authors all on the same line.
* Add option to apply opacity to all background colorsKirill Chibisov2021-08-16
| | | | | | | In some cases it could be desired to apply 'background_opacity' to all background colors instead of just 'colors.primary.background', thus adding an 'colors.opaque_background_colors' option to control that. Fixes #741.
* Add ExpandSelection mouse binding actionJason Heard2021-07-29
| | | Fixes #4132.
* Fix leaving vi mode with active selectiona5ob7r2021-07-07
| | | | | | | This bug comes from 530de00049c2afcc562d36ccdb3e6afa2fe396a5. The vi cursor movement changes text selection range when it is on vi mode. On the other hand the cursor movement doesn't change the range when it isn't on vi mode. So preserve text selection range by toggling vi mode early.
* Fix clippy warningsChristian Duerr2021-07-03
|
* Add modes to regex hint bindingsJoshua Ortiz2021-06-19
| | | Fixes #5154.
* Add ipfs/ipns URL scheme supportAlfonso Montero2021-05-21
|
* Fix default URL bindingChristian Duerr2021-05-10
| | | | | The default binding for launching the URL hints was documented as Ctrl+Shift+U, but never actually set. This adds this binding as the default instead of having URLs only launchable using the mouse.
* Fix URL highlighting with unicode whitespaceChristian Duerr2021-05-09
| | | | | | The URL highlighting regex would automatically terminate on an ascii whitespace, however there are several other forms of whitespace that are indistinguisable to a user from normal whitespace. To make things a little more intuitive, all unicode whitespace will now terminate URLs.
* Add deprecation warning for mouse URL configChristian Duerr2021-05-01
| | | Fixes #5035.
* Use cell colors for focused match CellRgbNathan Lilienthal2021-04-30
| | | | | Fixes #5022. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Add support for magnet URLsRaphael Nestler2021-04-30
|
* Add hint action for moving the vi cursorChristian Duerr2021-04-15
| | | Fixes #4319.
* Add vi/mouse hint highlighting supportChristian Duerr2021-04-13
| | | | | This patch removes the old url highlighting code and replaces it with a new implementation making use of hints as sources for finding matches in the terminal.
* Add hide other windows binding on macOSKam Kudla2021-04-08
| | | Fixes #3697.
* Add copy/paste/select hint actionsChristian Duerr2021-04-03
| | | | | | This adds some built-in actions for handling hint selections without having to spawn external applications. The new actions are `Copy`, `Select` and `Paste`.
* Unify the grid line indexing typesChristian Duerr2021-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously Alacritty was using two different ways to reference lines in the terminal. Either a `usize`, or a `Line(usize)`. These indexing systems both served different purposes, but made it difficult to reason about logic involving these systems because of its inconsistency. To resolve this issue, a single new `Line(i32)` type has been introduced. All existing references to lines and points now rely on this definition of a line. The indexing starts at the top of the terminal region with the line 0, which matches the line 1 used by escape sequences. Each line in the history becomes increasingly negative and the bottommost line is equal to the number of visible lines minus one. Having a system which goes into the negatives allows following the escape sequence's indexing system closely, while at the same time making it trivial to implement `Ord` for points. The Alacritty UI crate is the only place which has a different indexing system, since rendering and input puts the zero line at the top of the viewport, rather than the top of the terminal region. All instances which refer to a number of lines/columns instead of just a single Line/Column have also been changed to use a `usize` instead. This way a Line/Column will always refer to a specific place in the grid and no confusion is created by having a count of lines as a possible index into the grid storage.
* Fix URLs opening in explorer on WindowsSerban Constantin2021-03-15
|
* Add regex terminal hintsChristian Duerr2021-03-01
| | | | | | | | | | | | | | | | This adds support for hints, which allow opening parts of the visual buffer with external programs if they match a certain regex. This is done using a visual overlay triggered on a specified key binding, which then instructs the user which keys they need to press to pass the text to the application. In the future it should be possible to supply some built-in actions for Copy/Pasting the action and using this to launch text when clicking on it with the mouse. But the current implementation should already be useful as-is. Fixes #2792. Fixes #2536.
* Update dependenciesChristian Duerr2021-02-13
| | | | | | This introduces some duplicate dependencies, though they are necessary to build properly without any warnings. Fixes #4735.
* Move renderable cell transformation to alacrittyChristian Duerr2021-01-24
| | | | | | | | | | | | This refactors a large chunk of the alacritty_terminal API to expose all data necessary for rendering uniformly through the `renderable_content` call. This also no longer transforms the cells for rendering by a GUI but instead just reports the content from a terminal emulation perspective. The transformation into renderable cells is now done inside the alacritty crate. Since the terminal itself only ever needs to know about modified color RGB values, the configuration for colors was moved to the alacritty UI code.
* Remove Windows WinPTY backendChristian Duerr2021-01-01
|
* Use ConfigDeserialize for all config enumsChristian Duerr2020-12-31
| | | | | | | This fixes up all of the remaining enums which are used in the configuration file to make sure they all support fully case insensitive deserialization. Fixes #4611.
* Add default binding to cancel search on Ctrl+CChristian Duerr2020-12-31
| | | Fixes #4612.
* Replace serde's derive with custom proc macroChristian Duerr2020-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the existing `Deserialize` derive from serde with a `ConfigDeserialize` derive. The goal of this new proc macro is to allow a more error-friendly deserialization for the Alacritty configuration file without having to manage a lot of boilerplate code inside the configuration modules. The first part of the derive macro is for struct deserialization. This takes structs which have `Default` implemented and will only replace fields which can be successfully deserialized. Otherwise the `log` crate is used for printing errors. Since this deserialization takes the default value from the struct instead of the value, it removes the necessity for creating new types just to implement `Default` on them for deserialization. Additionally, the struct deserialization also checks for `Option` values and makes sure that explicitly specifying `none` as text literal is allowed for all options. The other part of the derive macro is responsible for deserializing enums. While only enums with Unit variants are supported, it will automatically implement a deserializer for these enums which accepts any form of capitalization. Since this custom derive prevents us from using serde's attributes on fields, some of the attributes have been reimplemented for `ConfigDeserialize`. These include `#[config(flatten)]`, `#[config(skip)]` and `#[config(alias = "alias)]`. The flatten attribute is currently limited to at most one per struct. Additionally the `#[config(deprecated = "optional message")]` attribute allows easily defining uniform deprecation messages for fields on structs.
* Add search history supportChristian Duerr2020-12-20
| | | | | | | | | | | | This adds a history to the regex search limited to at most 255 entries. Whenever a search is either confirmed or cancelled, the last regex is entered into the history and can be accessed when a new search is started. This should help users recover complicated search regexes after accidentally discarding them, or handle repeated searches with the same regexes. Fixes #4095.
* Add separate mode for search bindingsChristian Duerr2020-12-19
|
* Increase file watcher delay on BSDChristian Duerr2020-12-17
| | | | | | | | | | | Since BSD does not support inotify polling in the `notify` crate and instead relies on manual filesystem polling, this would cause a high CPU usage at 100 polls a second. A separate polling rate of once per second is now used for platforms which do not support filesystem polling, allowing users to still make use of live config reload on BSD. Fixes #3871.
* Fix live reload with broken yaml on startChristian Duerr2020-12-14
| | | | | | | | | | | | | Since the current behavior would just load the default configuration file whenever the configuration file couldn't be loaded, the path was not set to any value. As a result however, the live config reload feature would not work with a broken yaml (one which cannot be deserialized, not one with warnings). If a configuration file has been specified, but the deserialization still failed, the path is now preserved on the default configuration file to make it possible to live reload a fix for the issue. Fixes #4561.
* Bump glutin to 0.26.0Kirill Chibisov2020-12-11
| | | | | Fixes #4530. Fixes #4072. Fixes #1927.
* Print multiline logs in one write callKirill Chibisov2020-12-10
| | | | Fixes potential split of multiline logs in the multithreaded context by writing them all at once.
* Remove redundant CLI flagsChristian Duerr2020-11-26
| | | | | | | | | | | | | This removes some of Alacritty's CLI flags since the same functionality is provided by the '--option' flag now. The removed flags are: * '--persistent-logging' * '--live-config-reload' * '--no-live-config-reload' * '--dimensions' * '--position' Fixes #4246.
* Add support for '~/' in config importsChristian Duerr2020-11-24
| | | | | | | | | | | This allows the configuration file imports to start with '~/' and resolve relative to the user's home directory. There is no support for '~user/' or '$HOME/' or any other shell expansion. However since paths relative to the home directory should be sufficient for everything, this provides a very simple solution without any significant drawbacks. Fixes #4157.
* Ignore nonexistent config imports instead of raising an errorJames Simpson2020-11-19
| | | Fixes: #4330.
* Deprecate the WinPTY backendChristian Duerr2020-11-06
|
* Bump glutin to 0.25.0Kirill Chibisov2020-10-07
| | | | | | | | | | | | Fixes #4206. Fixes #4162. Fixes #4017. Fixes #3998. Fixes #3831. Fixes #3782. Fixes #3708. Fixes #2734. Fixes #2714. Fixes #1801.
* Add support for single line terminalsii412020-09-27
| | | | | | | | | | | | | | | | | This changes the minimum terminal dimensions from 2 lines and 2 columns, to 1 line and 2 columns. This also reworks the `SizeInfo` to store the number of columns and lines and consistently has only the terminal lines/columns stored, instead of including the message bar and search in some places of the Alacritty renderer/input. These new changes also make it easy to properly start the selection scrolling as soon as the mouse is over the message bar, instead of waiting until it is beyond it. Fixes #4207. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Fix CLI arguments without config fileChristian Duerr2020-09-20
| | | | | | | | | | | Since we only applied the CLI arguments as overrides to the configuration file after the file was loaded, all CLI arguments that are stored on the config would be dropped without a configuration file in place. This also makes sure that all configuration file config overrides are still loaded if the configuration file could not be loaded for any reason, since there's no reason why we'd just drop everything in that case.
* Add CLI parameter to override config optionsChristian Duerr2020-08-22
| | | | | | | | This uses the facilities added in 3c3e6870dedad56b270f5b65ea57d5a6e46b1de6 to allow overriding individual configuration file options dynamically from the CLI using the --options/-o parameter. Fixes #1258.
* Fix config import error handlingChristian Duerr2020-08-22
|
* Add configuration file importsChristian Duerr2020-08-21
| | | | | | | | | | | | | | | | | | | This adds the ability for users to have multiple configuration files which all inherit from each other. The order of imports is chronological, branching out to the deepest children first and overriding every field with that of the configuration files that are loaded at a later point in time. Live config reload watches the directories of all configuration files, allowing edits in any of them to update Alacritty immediately. While the imports are live reloaded, a new configuration file watcher will only be spawned once Alacritty is restarted. Since this might cause loops which would be very difficult to detect, a maximum depth is set to limit the recursion possible with nested configuration files. Fixes #779.
* Add ^C binding to cancel search and leave Vi modeChristian Duerr2020-08-10
| | | | Fixes #4089.
* Bump minimum supported Rust version to 1.43.0Kirill Chibisov2020-07-28
|
* Rename font crate to crossfontChristian Duerr2020-07-18
|
* Add support for searching without vi modeChristian Duerr2020-07-15
| | | | | | | | This implements search without vi mode by using the selection to track the active search match and advancing it on user input. The keys to go to the next or previous match are not configurable and are bound to enter and shift enter based on Firefox's behavior. Fixes #3937.