# Alacritty

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Alacritty is a simple, GPU-accelerated terminal emulator written in Rust. It supports scrollback, truecolor, copy/paste, clicking on URLS, and custom key bindings.

## Installation

Install the alacritty package or alacritty-gitAUR for the development version.

## Configuration

Alacritty searches for a configuration file at the following places in this order:

- `$XDG_CONFIG_HOME/alacritty/alacritty.yml`
- `$XDG_CONFIG_HOME/alacritty.yml`
- `$HOME/.config/alacritty/alacritty.yml`
- `$HOME/.alacritty.yml`

Copy the example configuration file at `/usr/share/doc/alacritty/example/alacritty.yml` to one of those places and uncomment the settings you want to change. Most settings take effect as soon as you save the file.

### Colors

See the upstream wiki for a list of available color schemes. If your preferred color scheme is on the list, paste the provided code into your configuration file.

### Font

If you do not want to use your system’s default font, you can specify a different font by changing the following lines:

    font:
      normal:
        family: monospace
        style: Regular

      bold:
        family: monospace
        style: Bold

      italic:
        family: monospace
        style: Italic

      bold_italic:
        family: monospace
        style: Bold Italic

      size: 11

Substitute `monospace` with a font name from the output of

    $ fc-list : family style

Note that some fonts do not provide an `Italic` style but an `Oblique` style instead.

## Tips and tricks

### Spawn new instance in same directory

Add the following lines to your configuration file to spawn a new instance of Alacritty in the current working directory by pressing `Ctrl+Shift+Enter`:

    key_bindings:
      - { key: Return,   mods: Control|Shift, action: SpawnNewInstance }

### "user@host:cwd" in window title bar

The window title bar shows "Alacritty" unlike other terminal emulators under Arch, which by default show "user@host:cwd". See FS#70752.

If you want the Arch default behavior to apply to all your users in Alacritty, you need to edit your `/etc/bash.bashrc` file.

Find the case statements which sets the `$PROMPT_COMMAND` for other terminals:

    case ${TERM} in

      xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
         PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'

        ;;
      screen*)
        PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
        ;;
    esac

Then edit the line `xterm*|rxvt*|Eterm|aterm|kterm|gnome*)` to add `alacritty*` so that it reads `xterm*|rxvt*|Eterm|alacritty*|aterm|kterm|gnome*)`.

### Vi mode and copy/paste

The vi mode allows moving around Alacritty's viewport and scrollback using the keyboard. By default you can toggle it using `Ctrl+Shift+Space`. To copy, you can either use a mouse to select and press `Ctrl+Shift+c`, or enter Vi mode, start a selection using `v`, move around with `hjkl` like in vim, and copy the selection with `y`. To paste, press `Ctrl+Shift+v`. To copy/paste to/from X clipboard, you can use a mouse selection to copy and a middle mouse click to paste.

## Troubleshooting

### Mouse not working properly in Vim

Add `ttymouse=sgr` to your `.vimrc` or switch to Neovim. Also see this issue.

### Transparent border in dwm

With dwm, alacritty's borders become transparent. Adding this line to `drw.c` in the dwm source directory and recompiling fixes the issue.

     if (!XftColorAllocName)...
         die("error, cannot allocate color '%s'", clrname); /* Find this line */
     dest->pixel |= 0xff << 24; /* Add this line */

### Terminal functionality unavailable in remote shells

When connecting to a remote system from an Alacritty terminal, for instance over SSH, it can occur that the system does not have an entry for Alacritty in its terminfo database (`/usr/share/terminfo/a/alacritty*`). Therefore, all interactive terminal functionality does not work. This can be fixed by copying the terminfo for Alacritty to the remote server, as described in termite#Terminal issues with SSH.

On the local host, using Alacritty:

    $ infocmp > alacritty.terminfo  # export Alacritty's Terminfo
    $ scp alacritty.terminfo user@remote-host:~/  # or any other method to copy to the remote host

On the remote host, in the directory where you copied `alacritty.terminfo`:

    $ tic -x alacritty.terminfo  # import Terminfo for current user
    $ rm alacritty.terminfo  # optional: remove Terminfo file

Note: After this, you will need to start a new SSH session to have the remote shell load the new Terminfo.

Alternatively, one can set the value of `TERM` in the configuration to `xterm-256color` instead of the default `alacritty`:

    env:
      TERM: xterm-256color

### Requires hardware supporting GLSL 3.30

You can force Alacritty to use software rendering by launching it with the environment variable `LIBGL_ALWAYS_SOFTWARE=1` [1]:

    $ LIBGL_ALWAYS_SOFTWARE=1 alacritty

Category:

- Terminal emulators