A cross-platform, OpenGL terminal emulator.
Go to file
Christian Duerr 40be4caca1
Add touch input support
This patch builds upon the prior work by @4z3 and @bytbox to add
touchscreen support to Alacritty. While some inspiration was taken from
@4z3's patch, it was rewritten from scratch.

This patch supports 4 basic touch interactions:
 - Tap
 - Scroll
 - Select
 - Zoom

Tap allows emulating the mouse to enter a single LMB click. While it
would be possible to add more complicated mouse emulation including
support for RMB and others, it's likely more confusing than anything
else and could conflict with other more useful touch actions.

Scroll and Select are started by horizontal or vertical dragging. While
selection isn't particularly accurate with a fat finger, it works
reasonably well and the separation from selection through horizontal and
vertical start feels pretty natural.

Since horizontal drag is reserved for selection we do not support
horizontal scrolling inside the terminal. While it would be possible to
somewhat support it by starting a selection with vertical movement and
then scrolling horizontally afterwards, it would likely just confuse
people so it was left out.

Zoom is pretty simple in just changing the font size when a two-finger
pinch gesture is used. Performance of this is pretty terrible especially
on low-end hardware since this obviously isn't a cheap operation, but it
seems like a worthwhile addition since small touchscreen devices are
most likely to need frequent font size adjustment to make output
readable.

Closes #3671.
2023-02-13 22:35:18 +00:00
.builds Update glutin to 0.30.0 2022-11-03 19:37:54 +03:00
.github Update glutin to 0.30.0 2022-11-03 19:37:54 +03:00
alacritty Add touch input support 2023-02-13 22:35:18 +00:00
alacritty_config Bump winit to 0.28.1 2023-02-02 15:09:47 +03:00
alacritty_config_derive Update winit to 0.28 2023-02-02 11:30:23 +03:00
alacritty_terminal Update winit to 0.28 2023-02-02 11:30:23 +03:00
docs Add support for hyperlink escape sequence 2022-07-10 20:11:28 +03:00
extra Add -T short form for --title 2022-12-11 00:54:06 +00:00
scripts Switch to flamegraph-rs script 2020-01-27 02:30:23 +03:00
.editorconfig Fix typo in .editorconfig 2020-12-14 06:46:28 +00:00
.gitignore Add editorconfig 2020-11-06 05:12:29 +03:00
CHANGELOG.md Add touch input support 2023-02-13 22:35:18 +00:00
CONTRIBUTING.md Update glutin to 0.30.0 2022-11-03 19:37:54 +03:00
Cargo.lock Bump glutin to 0.30.6 2023-02-12 17:04:59 +03:00
Cargo.toml Add IPC config subcommand 2022-09-01 01:48:38 +03:00
INSTALL.md Add RHEL8 instructions to INSTALL.md 2022-10-07 22:39:06 +00:00
LICENSE-APACHE Remove copyright notice from files 2020-06-06 21:49:14 +03:00
LICENSE-MIT Add licenses to `alacritty_config` 2022-09-05 09:39:09 +03:00
Makefile Add alacritty.yml to dmg 2023-01-26 02:34:54 +00:00
README.md Add fallback GLES2 renderer 2022-03-02 10:05:12 +00:00
alacritty.yml Update winit to 0.28 2023-02-02 11:30:23 +03:00
rustfmt.toml Update rustfmt configuration 2021-10-11 00:54:18 +00:00

README.md

Alacritty Logo

Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty - A fast, cross-platform, OpenGL terminal emulator

About

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

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.

Features

You can find an overview over the features available in Alacritty here.

Further information

Installation

Alacritty can be installed by using various package managers on Linux, BSD, macOS and Windows.

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

For everyone else, the detailed instructions to install Alacritty can be found here.

Requirements

  • At least OpenGL ES 2.0
  • [Windows] ConPTY support (Windows 10 version 1809 or higher)

Configuration

You can find the default configuration file with documentation for all available fields on the GitHub releases page for each release.

Alacritty doesn't create the config file for you, but it looks for one in the following locations:

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

Windows

On Windows, the config file should be located at:

%APPDATA%\alacritty\alacritty.yml

Contributing

A guideline about contributing to Alacritty can be found in the CONTRIBUTING.md file.

FAQ

Is it really the fastest terminal emulator?

Benchmarking terminal emulators is complicated. Alacritty uses vtebench to quantify terminal emulator throughput and manages to consistently score better than the competition using it. If you have found an example where this is not the case, please report a bug.

Other aspects like latency or framerate and frame consistency are more difficult to quantify. Some terminal emulators also intentionally slow down to save resources, which might be preferred by some users.

If you have doubts about Alacritty's performance or usability, the best way to quantify terminal emulators is always to test them with your specific usecases.

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.

IRC

Alacritty discussions can be found in #alacritty on Libera.Chat.

License

Alacritty is released under the Apache License, Version 2.0.