Skip to content

A cross-platform, OpenGL terminal emulator with smart copy. Im glad living at sigurdo time

License

Notifications You must be signed in to change notification settings

rootfebri/alacritty-smart-copy

 
 

Repository files navigation

Alacritty Logo

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

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

About this fork

This fork of Alacritty lets you copy and paste with ctrl+c and ctrl+v, like in most modern Windows and Linux software. If no text is selected, ctrl+c sends SIGINT like usual. The selection is cleared when you copy with ctrl+c. In this way, pressing ctrl+c twice will always send minimum one SIGINT. Copying without clearing the selection can still be achieved with ctrl+shift+c.

Precompiled binaries are available from the GitHub releases page.

On the technical side, a CopyDynamic action is added. It copies the selected text and clears the selection. When no text is selected, the keystroke is passed through, thus causing a SIGINT.

"Smart copy" was first propsed and rejected already back in 2018 for reasons I do not agree with. In 2020, dtheodor provided a fantastic explanation of why smart copy is such a brilliant solution. A pull request implementing this feature was proposed by ambiso later in 2020, which was also rejected. Their fork is sadly outdated now. Therefore, I created this updated fork with the same approach. I plan to keep the fork up to date for as long as I use Alacritty as my daily driver terminal emulator.

The following key bindings are provided by default for Windows, Linux and BSD:

[[keyboard.bindings]]
key = "V"
mods = "Control"
mode = "~Vi"
action = "Paste"

[[keyboard.bindings]]
key = "C"
mods = "Control"
mode = "~Vi"
action = "CopyDynamic"

and in YAML (for Alacritty v0.12 or older),

key_bindings:
  - { key: V, mods: Control, mode: ~Vi, action: Paste }
  - { key: C, mods: Control, mode: ~Vi, action: CopyDynamic }

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.

Join #alacritty on libera.chat if you have questions or looking for a quick help.

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 documentation for Alacritty's configuration in man 5 alacritty, or by looking at the website if you do not have the manpages installed.

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

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

Windows

On Windows, the config file should be located at:

%APPDATA%\alacritty\alacritty.toml

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.

License

Alacritty is released under the Apache License, Version 2.0.

About

A cross-platform, OpenGL terminal emulator with smart copy. Im glad living at sigurdo time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 96.4%
  • Shell 2.3%
  • Other 1.3%