aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
AgeCommit message (Collapse)Author
2023-06-11Add resolver to workspace manifestChristian Duerr
This explicitly specifies resolver "2" in the root manifest, to fix a warning introduced in a recent nightly release.
2023-03-11Use `thin` instead of `fat` LTOKirill Chibisov
The performance between `thin` and `fat` is in the margin of error, however `thin` LTO is way faster to build.
2022-09-01Add IPC config subcommandChristian Duerr
This patch adds a new mechanism for changing configuration options without editing the configuration file, by sending options to running instances through `alacritty msg`. Each window will load Alacritty's configuration file by default and then accept IPC messages for config updates using the `alacritty msg config` subcommand. By default all windows will be updated, individual windows can be addressed using `alacritty msg config --window-id "$ALACRITTY_WINDOW_ID"`. Each option will replace the config's current value and cannot be reset until Alacritty is restarted or the option is overwritten with a new value. Configuration options are passed in the format `field.subfield=value`, where `value` is interpreted as yaml. Closes #472.
2020-12-21Replace serde's derive with custom proc macroChristian Duerr
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.
2020-07-18Rename font crate to crossfontChristian Duerr
2020-03-25Update Linux/BSD font dependenciesChristian Duerr
This updates font dependencies to make use of the newly unified freetype-sys crate, allowing us to get rid of Alacritty's patch section in the Cargo.toml.
2020-02-17Extract winpty crateChristian Duerr
The winpty crate and its winpty-sys depedency have been moved to https://github.com/alacritty/winpty.
2020-01-11Move Alacritty to organizationChristian Duerr
This fixes various outdated links pointing to the old jwilm/alacritty repository. Since `copypasta` now has its own github repository at https://github.com/alacritty/copypasta, the sources have been removed from Alacritty.
2020-01-10Bump glutin to 0.22.0Christian Duerr
Fixes #3165.
2020-01-05Bump winit to 0.20.0 Alpha 6Christian Duerr
Fixes #3070. Fixes #2893. Fixes #2877. Fixes #2829. Fixes #2767. Fixes #2271.
2019-06-09Add wayland primary selection clipboard supportChristian Duerr
2019-04-28Switch from copypasta to rust-clipboardChristian Duerr
This switches our own `copypasta` crate with the more standardized `clipboard` library, which allows us to get rid of the `xclip` dependency on X11. Additionally, this lays the foundation for native Wayland clipboard support once the clipboard crate is updated (or a fork is created). Fixes #5.
2019-04-28Split alacritty into a separate cratesTheodore Dubois
The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.
2019-04-22Bump version to 0.3.2v0.3.2Christian Duerr
2019-04-22Bump version to 0.3.1v0.3.1Christian Duerr
2019-04-19Fix cursor dimensions with font offsetChristian Duerr
Previously cursor dimensions were not calculated correctly when a font offset was specified, since the font offset was completely ignored. This has been fixed by moving all the cursor logic from the font into the Alacritty crate, applying the config's offsets before rasterizing the cursors. This has also fixed an issue with some cursors not being rendered as double-width correctly when over double-width glyphs. This fixes #2209.
2019-04-09Set maximum Rust version to 1.31.0Christian Duerr
By setting the minimum Rust version and enforcing it with CI, Alacritty should hopefully make it possible for maintainers to package the application even on distributions which are not rolling release. The 1.31.0 target has been chosen here because it's the first version of the Rust 2018 release. Bumping this version in the future should be considered to be a breaking change and should only be done with caution and in consideration of the supported Rust versions of the major distributions available. This fixes #2277.
2019-04-08Bump version to 0.3.0v0.3.0Christian Duerr
2019-04-04Fix build errors on BSDv0.3.0-rc3Christian Duerr
This updates winit and glutin to the latest git versions instead of relying on releases to fix a build failure on BSD. Unfortunately the upstream version bumps might still take a bit and there hasn't been any feedback with regards to a planned release date. This also fixes a slight issue on Windows where selections would start when focusing a window and a build failure with some Linux systems Fixes #2243. Fixes #2170. Fixes #2244.
2019-04-04Add icon to Linux .desktop fileKirill Chibisov
2019-04-04Upgrade to winapi 0.3.7David Hewitt
2019-04-03Bump dependenciesChristian Duerr
2019-04-02Fix BSD build failureChristian Duerr
This updates all dependencies removing any reference to nix 0.12 which prevents successful builds on OpenBSD. Fixes #2244.
2019-04-01Add official logov0.3.0-rc2Christian Duerr
2019-03-21Update extended-description for deb fileAlex Touchet
2019-03-14Update glutin to version 0.20Christian Duerr
Fixes #458. Fixes #1681.
2019-03-12Fix signal handling on Unix systemsRachel K
This removes the the signal handling machinery in tty::unix, and replaces it with functionality from signal-hook, which should be more robust. Signals caught by signal-hook wake up the existing I/O event loop, which then delegates back to the PTY to handle them. In particular, this allows `SIGCHLD` (i.e. child process exits) to shut down the terminal promptly, instead of sometimes leaving the window lingering. Fixes #915. Fixes #1276. Fixes #1313. As a side effect, this fixes a very rare bug on Linux, where a `read` from the PTY on the master side would sometimes "fail" with `EIO` if the child closed the client side at a particular moment. This was subject to a race condition, and was very difficult to trigger in practice.
2019-02-11Bump version to 0.2.9v0.2.9Christian Duerr
2019-02-10Bump version to 0.2.8v0.2.8Christian Duerr
2019-02-07Dynamically resize terminal for errors/warningsChristian Duerr
The warning and error messages now don't overwrite other terminal content anymore but instead resize the terminal to make sure that text can always be read. Instead of just showing that there is a new error and pointing to the log, errors will now be displayed fully in multiple lines of text, assuming that there is enough space left in the terminal. Explicit mouse click handling has also been added to the message bar, which made it possible to add a simple `close` button in the form of `[X]`. Alacritty's log file location is now stored in the `$ALACRITTY_LOG` environment variable which the shell inherits automatically. Previously there were some issues with the log file only being deleted when certain methods for closing Alacritty were used (like typing `exit`). This has been reworked and now Ctrl+D, exit and signals should all work properly. Before the config is reloaded, all current messages are now dropped. This should help with multiple terminals all getting clogged up at the same time when the config is broken. When one message is removed, all other duplicate messages are automatically removed too.
2019-02-05Disable incremental for release buildsChristian Duerr
This fixes #1115.
2019-02-04Simplify text shaderM. Stoeckl
2019-01-21Bump version to 0.2.7v0.2.7Christian Duerr
2019-01-19Bump version to 0.2.6v0.2.6Christian Duerr
2019-01-09Fix CPU load when moving windows between monitorsChristian Duerr
2019-01-07Bump version to 0.2.5v0.2.5Christian Duerr
This bumps the version number to 0.2.5 and prepares everything for the next versioned release.
2018-12-28Add support for Windows ConPTY APIv0.2.4-conptyDavid Hewitt
2018-12-27Update reqwest to 0.9Bastien Orivel
2018-12-27Use mio-extras instead of mio-moreBastien Orivel
The latter isn't maintained anymore and this removes a bunch of outdated dependencies.
2018-12-27Make windows config location more sensibleZac Pullar-Strecker
2018-12-10Upgrade to Rust 2018Joe Wilm
This resolves a lot of NLL issues, however full NLL will be necessary to handle a couple of remaining issues.
2018-12-09Bump version to 0.2.4v0.2.4Christian Duerr
2018-11-19Changed path to standard /usr/bin/..., registered as an x-terminal-emulator ↵Ilya Epifanov
alternative
2018-11-17Display errors and warningsChristian Duerr
To make sure that all error and information reporting to the user is unified, all instances of `print!`, `eprint!`, `println!` and `eprintln!` have been removed and replaced by logging. When `RUST_LOG` is not specified, the default Alacritty logger now also prints to both the stderr and a log file. The log file is only created when a message is written to it and its name is printed to stdout the first time it is used. Whenever a warning or an error has been written to the log file/stderr, a message is now displayed in Alacritty which points to the log file where the full error is documented. The message is cleared whenever the screen is cleared using either the `clear` command or the `Ctrl+L` key binding. To make sure that log files created by root don't prevent normal users from interacting with them, the Alacritty log file is `/tmp/Alacritty-$PID.log`. Since it's still possible that the log file can't be created, the UI error/warning message now informs the user if the message was only written to stderr. The reason why it couldn't be created is then printed to stderr. To make sure the deletion of the log file at runtime doesn't create any issues, the file is re-created if a write is attempted without the file being present. To help with debugging Alacritty issues, a timestamp and the error level are printed in all log messages. All log messages now follow this format: [YYYY-MM-DD HH:MM] [LEVEL] Message Since it's not unusual to spawn a lot of different terminal emulators without restarting, Alacritty can create a ton of different log files. To combat this problem, logfiles are removed by default after Alacritty has been closed. If the user wants to persist the log of a single session, the `--persistent_logging` option can be used. For persisting all log files, the `persistent_logging` option can be set in the configuration file
2018-11-14Update all dependenciesChristian Duerr
This applies all breaking and non-breaking dependency updates.
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-11Bump version number to v0.2.2v0.2.2Christian 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-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-01Update serde_yaml to 0.8Do Duy
This fixes jwilm/alacritty#1730.