1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-03 04:34:21 -05:00
A cross-platform, OpenGL terminal emulator.
Find a file
Christian Duerr 91aa683bcd
Rework URL highlighting
This completely reworks URL highlighting to fix two issues which were
caused by the original approach.

The primary issues that were not straight-forward to resolve with the
previous implementation were about handling the URL highlighted content
moving while the highlight is active.

This lead to issues with highlighting with scrolling and when the
display offset was not 0.

The new approach sticks closely to prior art done for the selection,
where the selection is tracked on the grid and updated whenever the
buffer is rotated.

The truncation of URLs was incorrectly assuming input to be just a
single codepoint wide to truncate the end of URLs with unmatching
closing parenthesis. This is now handled properly using Rust's built-in
Unicode support.

This fixes #2231.
This fixes #2225.
2019-03-30 09:23:48 +00:00
.github Add issue template 2017-08-29 08:32:14 -07:00
assets Bump version to 0.2.9 2019-02-11 23:59:21 +00:00
ci Add MSI installer for Windows 2019-03-02 18:31:14 +00:00
copypasta Normalize Log Message Strings 2019-01-07 00:06:57 +00:00
debian Changed path to standard /usr/bin/..., registered as an x-terminal-emulator alternative 2018-11-19 09:24:22 +00:00
docs starting not staring (#1074) 2018-02-11 09:50:52 -08:00
font Remove library lockfiles from git 2019-02-04 23:12:56 +00:00
res Simplify text shader 2019-02-04 19:03:25 +00:00
scripts Changed explicit script shebangs to use /usr/bin/env 2019-01-21 22:12:09 +00:00
servo-freetype-proxy Bump fontconfig dependencies 2018-09-30 20:44:14 +00:00
snap Small Updates to the README (#2091) 2019-02-18 14:54:46 -05:00
src Rework URL highlighting 2019-03-30 09:23:48 +00:00
tests Dynamically resize terminal for errors/warnings 2019-02-07 22:36:45 +00:00
winpty Remove library lockfiles from git 2019-02-04 23:12:56 +00:00
wix Add MSI installer for Windows 2019-03-02 18:31:14 +00:00
.agignore Add silver searcher ignore file 2016-12-29 10:49:12 -05:00
.gitignore Add MSI installer for Windows 2019-03-02 18:31:14 +00:00
.travis.yml Remove deployment script from clippy builds 2019-02-10 23:15:00 +00:00
alacritty-completions.bash Add option for window position at startup 2019-03-11 12:35:49 +00:00
alacritty-completions.fish Add option for window position at startup 2019-03-11 12:35:49 +00:00
alacritty-completions.zsh Add option for window position at startup 2019-03-11 12:35:49 +00:00
alacritty.desktop Update to glutin 0.16.0 2018-05-29 09:50:49 -07:00
alacritty.info Fix terminfo support for extended capabilities 2019-03-03 20:25:29 +00:00
alacritty.man Update --class docs 2019-03-29 13:21:55 +00:00
alacritty.yml Add additional key bindings for changing font size 2019-03-15 20:41:48 +00:00
build.rs Upgrade to Rust 2018 2018-12-10 17:53:56 +00:00
Cargo.lock Update Cargo.lock 2019-03-15 00:11:44 +00:00
Cargo.toml Update extended-description for deb file 2019-03-21 22:45:03 +00:00
CHANGELOG.md Rework URL highlighting 2019-03-30 09:23:48 +00:00
CONTRIBUTING.md Fix broken link in CONTRIBUTING.md 2019-02-16 19:22:01 +00:00
INSTALL.md Fix terminfo support for extended capabilities 2019-03-03 20:25:29 +00:00
LICENSE-APACHE Add license headers to source files 2016-06-29 20:59:14 -07:00
Makefile Set minimum macOS version to 10.11 2019-01-06 19:12:30 +00:00
README.md Remove appveyor badge from readme 2019-03-04 16:23:19 +00:00

Alacritty

Travis build Status

Alacritty is the fastest terminal emulator in existence. Using the GPU for rendering enables optimizations that simply aren't possible without it. Alacritty currently supports macOS, Linux, BSD, and Windows.

Alacritty running vim inside tmux

About

Alacritty is a terminal emulator with a strong focus on simplicity and performance. With such a strong focus on performance, included features are carefully considered and you can always expect Alacritty to be blazingly fast. By making sane choices for defaults, Alacritty requires no additional setup. However, it does allow configuration of many aspects of the terminal.

The software is considered to be at a beta level of readiness -- there are a few missing features and bugs to be fixed, but it is already used by many as a daily driver.

Precompiled binaries are available from the GitHub releases page.

Further information

Installation

Some operating systems already provide binaries for Alacritty, for everyone else the instructions to build Alacritty from source can be found here.

Arch Linux

pacman -S alacritty

openSUSE Tumbleweed

zypper in alacritty

Void Linux

xbps-install alacritty

Gentoo Linux

emerge x11-terms/alacritty

Mageia 7+

urpmi alacritty

FreeBSD

pkg install alacritty

NixOS

nix-env -iA nixos.alacritty

Solus

eopkg install alacritty

macOS

brew cask install alacritty

Once the cask is installed, it is recommended to setup the manual page, shell completions, and terminfo definitions.

Windows

Via Chocolatey

choco install alacritty

Via Scoop

scoop bucket add extras
scoop install alacritty

Other

Prebuilt binaries for Linux, macOS, and Windows can be downloaded from the GitHub releases page.

To work properly on Windows, Alacritty requires winpty to emulate UNIX's PTY API. The agent is a single binary (winpty-agent.exe) which must be in the same directory as the Alacritty executable and is available through the GitHub releases page.

Configuration

Although it's possible the default configuration would work on your system, you'll probably end up wanting to customize it anyhow. There is a default alacritty.yml at the Git repository root. Alacritty looks for the configuration file at the following paths:

  1. $XDG_CONFIG_HOME/alacritty/alacritty.yml
  2. $XDG_CONFIG_HOME/alacritty.yml
  3. $HOME/.config/alacritty/alacritty.yml
  4. $HOME/.alacritty.yml

If none of these paths are found then $XDG_CONFIG_HOME/alacritty/alacritty.yml is created once Alacritty is first run. On most systems this often defaults to $HOME/.config/alacritty/alacritty.yml.

Many configuration options will take effect immediately upon saving changes to the config file. For more information about the config file structure, refer to the default config file.

Windows

On Windows the config file is located at:

%APPDATA%\alacritty\alacritty.yml

Issues (known, unknown, feature requests, etc.)

If you run into a problem with Alacritty, please file an issue. If you've got a feature request, feel free to ask about it. Please just keep in mind Alacritty is focused on simplicity and performance, and not all features are in line with that goal.

Before opening a new issue, please check if it has already been reported. There's a chance someone else has already reported it, and you can subscribe to that issue to keep up on the latest developments.

FAQ

Is it really the fastest terminal emulator?

In the terminals we've benchmarked, Alacritty is either faster or way faster than the others. If you've found a case where this isn't true, please report a bug.

Why isn't feature X implemented?

Alacritty has many great features, but not every feature from every other terminal. This could be for a number of reasons, but sometimes it's just not a good fit for Alacritty. This means you won't find things like tabs or splits (which are best left to a window manager or terminal multiplexer) nor niceties like a GUI config editor.

macOS + tmux + vim is slow! I thought this was supposed to be fast!

This appears to be an issue outside of terminal emulators; either macOS has an IPC performance issue, or either tmux or vim (or both) have a bug. This same issue can be seen in iTerm2 and Terminal.app. I've found that if tmux is running on another machine which is connected to Alacritty via SSH, this issue disappears. Actual throughput and rendering performance are still better in Alacritty.

My arrow keys don't work.

It sounds like you deleted some key bindings from your config file. Please reference the default config file to restore them.

IRC

Alacritty discussion can be found in #alacritty on freenode.

Wayland

Wayland support is available, but not everything works as expected. Many people have found a better experience using XWayland which can be achieved by launching Alacritty with the WAYLAND_DISPLAY environment variable cleared:

env WAYLAND_DISPLAY="" alacritty

If you're interested in seeing our Wayland support improve, please head over to the Wayland meta issue on the winit project to see how you may contribute.

License

Alacritty is released under the Apache License, Version 2.0.