July 26, 2017

629 words 3 mins read

Trying Out Alacritty

Trying Out Alacritty

Recently stumbled on this comment from lobste.rs. I have heard of Alacritty before but never had a chance to try it out. This time I have decided to at least check it out.

What is Alacritty?

Alacritty claims to be a really fast terminal emulator. It has a unique feature according to its description:

Alacritty is the fastest terminal emulator in existence. Using the GPU for rendering enables optimizations that simply aren’t possible in other emulators.

I used to use rxvt-unicode back in Arch Linux and have found it to be very fast considering its small amount of features (which seems to be another advantage of Alacritty). I then switched to iTerm2 when I moved to MacOS.

Installation of Alacritty

Installation is very simple. All I needed to do was install Rust using rustup, clone the repository (first few steps can also be found here), and follow the link here. I always forget about Github’s wiki and missed the documentation about “MacOS application bundle”. I originally did a cp target/release/alacritty /usr/local/bin before finding the wiki.

After installation the configuration can be found at $HOME/.config/alacritty/alacritty.yml (one of the paths where Alacritty searches for the configuration).

Issues/Missing Features

I really like Alacritty and while it is fast, it does still need some features and fixes. It sacrificed features over speed. While I like that it has lesser features compared to most terminal emulators, it may have went beyond in leaving its features behind. One comment from /r/programming says this:

Here are some features that I find might be useful for me and luckily there are already issues on Github to implement these features (these are also MacOS specific):

  1. Support for Alt+key

    I use emacs mode in my shell and commonly use combinations such as alt + b (to move a word back) or alt + . (to insert last argument from previous command). iTerm2 has an option to have the “Left option” key act as “+esc”. Can’t entirely remember what “+esc” is although it allows me to use the same key combinations similar to Linux with the alt key.

    Alacritty doesn’t have this (yet) although a workaround is to specify the combinations and provide the characters it would “invoke”. An example for alt + b and alt + f would be these:

    - { key: B,        mods: Alt,     chars: "\x1bb"                       }
    - { key: F,        mods: Alt,     chars: "\x1bf"                       }
    
  2. Proper full screen support

    Currently, Alacritty doesn’t have support for full screen. For iTerm2 specifically, it has support for non-native full screen in MacOS. This occupies the whole screen and sits on top of the other applications (unlike the green expand button which seems to occupy a whole other space).

  3. Support multiple windows

    Currently when running the MacOS application bundle through either spotlight or Alfred, only a single instance of Alacritty is allowed. I usually run tmux and vim in separate windows (or tabs in iTerm2). It would be nice if Alacritty supports this.

  4. URL recognition

    It’s a bit difficult to open links from Alacritty. In iTerm2, you could do a combination of alt + command + mouse left click to open a link in the default browser. Back in rxvt-unicode, Arch Linux has a documentation on having Clickable URLs.

While Alacritty is still in its early version:

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

I’m still happy that these features are planned to be implemented. I haven’t used Alacritty really long yet. I might go back to iTerm2 but for now I will probably still be using Alacritty. The missing features I can live without.