How To

Install Alacritty Terminal on Ubuntu 26.04 / 24.04

Ubuntu carries Alacritty in its own archive, so the quickest way to install Alacritty on Ubuntu is one apt command. The catch is the version. The 24.04 archive is four releases behind upstream, and a config written for current Alacritty half fails on it. The theme import is the first thing to go.

Original content from computingforgeeks.com - post 161405

This guide covers the three install routes that work today: the apt package, the Snapcrafters snap, and a build from source with the right Rust toolchain for each release. It then sets up alacritty.toml with a theme, makes Alacritty the default terminal for Ctrl+Alt+T, and lists the exact errors we hit. Every step was run on fresh Ubuntu 26.04 LTS and Ubuntu 24.04 LTS GNOME desktops in October 2026, with Alacritty 0.17.0 as the latest upstream release.

Pick an install method

All three methods give you a working terminal. They differ in how current the build is, how it updates, and how fast it starts. The startup column is the median of seven launches on the 26.04 VM, timed from exec until the window closed again (alacritty -e true).

MethodUbuntu 26.04Ubuntu 24.04UpdatesLaunch to exit (26.04)
apt (universe)0.16.10.13.2With the release, rarely278 ms
Snap (Snapcrafters, classic)0.17.00.17.0Automatic697 ms
Source build0.17.00.17.0Manual rebuild298 ms

On 26.04 the apt package is one release behind and is the sensible default. On 24.04 it is old enough that the config format differs, so most people there should take the snap or build from source. The source build costs about two minutes of compile time and gives the fastest current binary. If you are still choosing a terminal, our Linux terminal emulator benchmarks put Alacritty at 100 ms to first frame and 39 MiB of idle memory on Ubuntu 26.04.

Install Alacritty on Ubuntu with apt

The package lives in the universe component. One command on either release:

sudo apt update
sudo apt install -y alacritty

Check the version you got:

alacritty --version

Ubuntu 26.04 reports the 0.16 line, while Ubuntu 24.04 prints the older 0.13 build:

alacritty 0.16.1    # Ubuntu 26.04
alacritty 0.13.2    # Ubuntu 24.04

The Ubuntu package does more than drop a binary in /usr/bin. It installs the desktop entry, the man pages, bash, zsh and fish completions, and it registers Alacritty as an x-terminal-emulator alternative. The terminfo entry comes from ncurses-term, which desktop installs already have, so TERM=alacritty works straight away. The 26.04 package running under GNOME on Wayland:

Alacritty 0.16.1 from the Ubuntu 26.04 apt repository

On Ubuntu 24.04 the VM’s GNOME session fell back to X11 (the virtual display has no GPU), and it shows the older package. It works, but it reads an older config layout, covered in the configuration section below.

Alacritty 0.13.2 from the Ubuntu 24.04 apt repository

Older guides point 24.04 users at ppa:aslatter/ppa. We added it on the 24.04 VM and the noble candidate is 0.15.1+1-20250526T050107~noble-b02e4fce, so the PPA has stopped tracking upstream for that release. It is not worth adding a third-party repository for a build that is still two releases old.

Install the Alacritty snap

The Snap Store build is published by Snapcrafters, not by the Alacritty project, and it needs classic confinement:

sudo snap install alacritty --classic

Confirm the channel and revision:

snap list alacritty

The stable channel carried the current upstream release when we tested:

Name       Version  Rev  Tracking       Publisher      Notes
alacritty  0.17.0   165  latest/stable  snapcrafters*  classic

Two things showed up in testing. The first launch prints a harmless MIME cache error before the version string (ERROR: update-mime-database ... exited abnormally with status 1), and it doesn’t come back on later runs. The second matters more: the snap ships its own Mesa from the core22 base, so it reported a Mesa release from the 23.x line while the host ran the 26.x line. It also took 697 ms from launch to exit against 278 ms for the apt build. On a desktop you open a few times a day that is fine. If you script terminal launches, or your GPU needs a recent Mesa, build from source instead.

Build Alacritty from source

Current Alacritty uses the Rust 2024 edition and declares a minimum Rust version of 1.85. That single fact decides which toolchain works on each release. Start with the build dependencies from the upstream INSTALL file, plus git, scdoc and the desktop file tools for the post-build steps:

sudo apt install -y cmake g++ pkg-config libfontconfig1-dev libxcb-xfixes0-dev \
  libxkbcommon-dev python3 git scdoc gzip desktop-file-utils

Rust toolchain on Ubuntu 26.04

Ubuntu 26.04 ships Rust 1.93 in the archive, which is new enough. No rustup needed:

sudo apt install -y cargo rustc
cargo --version

Rust toolchain on Ubuntu 24.04

The default cargo package on 24.04 is 1.75, and it stops before compiling anything:

error: failed to load manifest for workspace member `/home/josphat/alacritty/alacritty`
Caused by:
  failed to parse manifest at `/home/josphat/alacritty/alacritty/Cargo.toml`
Caused by:
  feature `edition2024` is required
  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.75.0).

The fix is already in the 24.04 archive, which carries versioned toolchains next to the default one (cargo-1.85, cargo-1.89, cargo-1.91 and others). Install the newest one:

sudo apt install -y cargo-1.91 rustc-1.91
cargo-1.91 --version

The versioned packages install as cargo-1.91 and rustc-1.91, so they never replace the default toolchain. If you already manage Rust with rustup, as in our Rust install guide, any stable toolchain at 1.85 or newer meets the requirement.

Compile the latest release

Clone the repository and check out the newest stable tag. The tag lookup skips release candidates, so the same commands keep working after the next release:

git clone https://github.com/alacritty/alacritty.git
cd alacritty
ALAC_TAG=$(git tag --sort=-v:refname | grep -vE 'rc|dev' | head -1)
echo "$ALAC_TAG"
git checkout "$ALAC_TAG"

Build with the archive toolchain on 26.04:

cargo build --release

On 24.04, point cargo at the matching versioned compiler:

RUSTC=rustc-1.91 cargo-1.91 build --release

Both builds finished cleanly on a 4 vCPU VM, 2m 34s on 26.04 and 1m 51s on 24.04 (the two VMs ran on different Proxmox hosts):

    Finished `release` profile [optimized + debuginfo] target(s) in 2m 34s

Peak memory during the build was just over 1 GB on both, so give a small VM at least 2 GB before you start. The result is target/release/alacritty, a 64 MB file because the release profile keeps debug info.

Install the binary, terminfo and desktop entry

Stay in the repository directory. If you installed the apt package earlier, remove it first so two copies do not fight over the menu entry:

sudo apt remove -y alacritty
sudo tic -xe alacritty,alacritty-direct extra/alacritty.info
sudo cp target/release/alacritty /usr/local/bin
sudo strip /usr/local/bin/alacritty
sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install extra/linux/Alacritty.desktop
sudo update-desktop-database

Stripping removes the debug info and symbol tables and takes the binary from 64 MB to 8.8 MB. The tic step writes a current terminfo entry to /etc/terminfo, which takes priority over the older copy in ncurses-term.

Next, the man pages. Current releases add a fifth page, alacritty-escapes(7), which most older guides miss:

sudo mkdir -p /usr/local/share/man/man1 /usr/local/share/man/man5 /usr/local/share/man/man7
scdoc < extra/man/alacritty.1.scd | gzip -c | sudo tee /usr/local/share/man/man1/alacritty.1.gz > /dev/null
scdoc < extra/man/alacritty-msg.1.scd | gzip -c | sudo tee /usr/local/share/man/man1/alacritty-msg.1.gz > /dev/null
scdoc < extra/man/alacritty.5.scd | gzip -c | sudo tee /usr/local/share/man/man5/alacritty.5.gz > /dev/null
scdoc < extra/man/alacritty-bindings.5.scd | gzip -c | sudo tee /usr/local/share/man/man5/alacritty-bindings.5.gz > /dev/null
scdoc < extra/man/alacritty-escapes.7.scd | gzip -c | sudo tee /usr/local/share/man/man7/alacritty-escapes.7.gz > /dev/null

Bash completion takes one copied file and a line in ~/.bashrc. For zsh and fish, the same extra/completions/ directory has _alacritty and alacritty.fish.

mkdir -p ~/.bash_completion
cp extra/completions/alacritty.bash ~/.bash_completion/alacritty
echo "source ~/.bash_completion/alacritty" >> ~/.bashrc

Confirm the shell resolves the new binary and the man pages are indexed:

hash -r
which alacritty
alacritty --version
man -w alacritty alacritty-escapes

The binary under /usr/local/bin and both man pages should resolve:

/usr/local/bin/alacritty
alacritty 0.17.0 (94e7c887)
/usr/local/man/man1/alacritty.1.gz
/usr/local/man/man7/alacritty-escapes.7.gz

Launch it from the app grid or type alacritty in any terminal. The source build on Ubuntu 26.04 with no config file yet:

Alacritty 0.17.0 built from source on Ubuntu 26.04

To upgrade later, run git fetch --tags, check out the new tag the same way and rebuild. Replace the binary with sudo install -s -m 755 target/release/alacritty /usr/local/bin/alacritty rather than cp, because cp fails with Text file busy while an Alacritty window is running. The -s flag strips the new copy as it installs it.

Configure Alacritty with alacritty.toml

Alacritty does not create a config file. It reads ~/.config/alacritty/alacritty.toml if it exists, and the format has been TOML since the 0.13 line. Create the directory and pull the community theme collection, which had 177 themes when we cloned it:

mkdir -p ~/.config/alacritty
git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes

Open the config file in your editor. It is your own file, so no sudo:

vim ~/.config/alacritty/alacritty.toml

This is the exact file we ran on both VMs. It imports Tokyo Night, sets the window size and padding, uses Ubuntu Sans Mono (installed by default on both releases), raises the scrollback to 50,000 lines and copies selections to the clipboard. The official configuration reference documents every other key:

[general]
import = ["~/.config/alacritty/themes/themes/tokyo_night.toml"]
live_config_reload = true

[window]
dimensions = { columns = 110, lines = 30 }
padding = { x = 10, y = 8 }
opacity = 0.96

[font]
normal = { family = "Ubuntu Sans Mono", style = "Regular" }
size = 12.0

[scrolling]
history = 50000

[selection]
save_to_clipboard = true

[keyboard]
bindings = [
  { key = "N", mods = "Control|Shift", action = "CreateNewWindow" },
]

Start Alacritty with -v once to confirm both files were read. The log names every file it loaded:

[INFO ] [alacritty] Configuration files loaded from:
                    "/home/josphat/.config/alacritty/alacritty.toml"
                    "/home/josphat/.config/alacritty/themes/themes/tokyo_night.toml"

With live_config_reload on, saving the file applies changes to open windows. We bumped the font size from 12 to 14 and the running window resized its cells from 9×21 to 10×23 pixels without a restart. The themed result on Ubuntu 26.04:

Alacritty with Tokyo Night theme and TOML config on Ubuntu 26.04

For icons and powerline glyphs in your prompt, install a patched font from our Nerd Fonts guide and put its family name in [font]. Alacritty has no tabs or splits by design, so most people pair it with tmux. For a styled prompt, pick one of the shell prompts for zsh, bash and fish.

Unused config key: general on the Ubuntu 24.04 package

The [general] table arrived in the 0.14 line. The 24.04 apt build predates it, so it ignores the whole table, theme import included, and logs one warning:

[WARN ] [alacritty_config_derive] Unused config key: general

The window opens with default colors and no error dialog, which is why this catches people out. If you stay on the 24.04 package, move the two keys to the top level and delete the [general] line:

import = ["~/.config/alacritty/themes/themes/tokyo_night.toml"]
live_config_reload = true

That layout still loads on current releases, but they warn on every start:

[WARN ] [alacritty_config_derive] Config warning: import has been deprecated; use general.import instead
                                  Use `alacritty migrate` to automatically resolve it

When you upgrade, let Alacritty rewrite the file. alacritty migrate moved both keys into a [general] table at the end of the file in our test. It also converts a legacy alacritty.yml from the YAML days: alacritty migrate -c ~/.config/alacritty/alacritty.yml writes an alacritty.toml next to it. Run it with --dry-run first to see the result. It also rewrites imported files, which here means a file inside the cloned theme repository and a dirty tree on the next git pull, so add --skip-imports when your imports come from git:

alacritty migrate --dry-run
alacritty migrate --skip-imports

The same [general] config on 24.04 with the source build loads the theme cleanly:

Alacritty 0.17.0 with Tokyo Night theme on Ubuntu 24.04

Make Alacritty the default terminal on Ubuntu

Ctrl+Alt+T does not use the same mechanism on the two releases. Ubuntu 26.04 GNOME calls xdg-terminal-exec, which picks Ptyxis from a system list. Ubuntu 24.04 calls x-terminal-emulator, which is managed by update-alternatives.

Ubuntu 26.04: xdg-terminals.list

A user list in ~/.config overrides the system default. Write the desktop file name into it:

echo Alacritty.desktop > ~/.config/xdg-terminals.list
xdg-terminal-exec --print-id

Before the change it printed org.gnome.Ptyxis.desktop:new-window. Afterwards it names Alacritty, and Ctrl+Alt+T opened an Alacritty window on the test VM:

Alacritty.desktop

The snap ships its desktop file as alacritty_alacritty.desktop, so snap users write that ID into the list instead. The apt and source desktop entry runs plain alacritty, so it starts whichever copy comes first in your PATH. With both the apt package and a source build installed, that is /usr/local/bin/alacritty.

Ubuntu 24.04: update-alternatives

The apt package registers itself as an alternative, so with the apt package installed you only select it:

sudo update-alternatives --set x-terminal-emulator /usr/bin/alacritty

It switches to manual mode and Ctrl+Alt+T opens Alacritty from then on:

update-alternatives: using /usr/bin/alacritty to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in manual mode

A source build or the snap is not registered, and --set on an unregistered path is refused. Register the binary first, then select it. For the snap, use /snap/bin/alacritty in both lines:

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/local/bin/alacritty 50
sudo update-alternatives --set x-terminal-emulator /usr/local/bin/alacritty

Check the result with update-alternatives --query x-terminal-emulator | grep Value, then press Ctrl+Alt+T.

Fix common Alacritty errors

Besides the edition2024 build failure and the general warning above, these are the messages we hit while testing.

TOML parse error: extra assignment between key-value pairs, expected `,`

Inline tables need commas between keys. Alacritty refuses to load the file and points at the exact column:

[ERROR] [alacritty_config_derive] Unable to load config "/tmp/bad.toml": Config error: TOML parse error at line 2, column 22
  |
2 | padding = { x = 10 y = 8 }
  |                      ^
extra assignment between key-value pairs, expected `,`

Write it as padding = { x = 10, y = 8 }. Launch alacritty -v from another terminal to see the message, because the broken window itself gives no hint.

Unused config key: backgound

A misspelled key isn’t an error. Alacritty logs a warning, skips the key and keeps going, so a typo in [colors.primary] silently leaves the default color in place. Search the log for Unused config key whenever a setting seems to have no effect.

WaylandError(Connection(NoCompositor))

This one appeared when we launched Alacritty over SSH on 24.04 with WAYLAND_DISPLAY set, while the GNOME session was actually running Xorg:

Error: Os(OsError { line: 80, file: "/usr/share/cargo/registry/winit-0.29.15/src/platform_impl/linux/wayland/event_loop/mod.rs", error: WaylandError(Connection(NoCompositor)) })

Find the desktop session ID with loginctl list-sessions (the one on seat0), then check its type with loginctl show-session 1 -p Type, using your ID in place of 1. Ours printed Type=x11. On an X11 session, unset WAYLAND_DISPLAY and export DISPLAY=:0 instead.

MESA: error: ZINK: failed to choose pdev

On VMs without a virtual GPU, Ubuntu 26.04 prints a few libEGL warning lines and this ZINK error at startup. Mesa then falls back to llvmpipe software rendering and Alacritty logs Using OpenGL 3.3 renderer. The terminal works normally, so these lines are noise rather than a fault.

Uninstall Alacritty

Remove the package with whichever tool installed it:

sudo apt purge -y alacritty
sudo snap remove --purge alacritty

A source install has no package manager to clean up after it, so delete the files the install steps created:

sudo rm -f /usr/local/bin/alacritty /usr/share/pixmaps/Alacritty.svg /usr/share/applications/Alacritty.desktop
sudo rm -f /usr/local/share/man/man1/alacritty*.1.gz /usr/local/share/man/man5/alacritty*.5.gz /usr/local/share/man/man7/alacritty*.7.gz
sudo update-desktop-database

If you registered a source or snap binary as the default terminal on 24.04, drop that entry too with sudo update-alternatives --remove x-terminal-emulator /usr/local/bin/alacritty, or Ctrl+Alt+T keeps pointing at a deleted file. The terminfo entries in /etc/terminfo/a/ stay behind. They are harmless, and ncurses-term carries its own copy of the entry anyway. Your ~/.config/alacritty directory also stays, so a reinstall picks up the same theme and settings. If you want to compare it with a terminal that has built-in tabs and splits, the Kitty install guide is a good next stop.

Keep reading

Upgrade Ubuntu 24.04 to Ubuntu 26.04 LTS (Step by Step) Ubuntu Upgrade Ubuntu 24.04 to Ubuntu 26.04 LTS (Step by Step) UFW Firewall Commands with Examples on Ubuntu 26.04 / 24.04 Security UFW Firewall Commands with Examples on Ubuntu 26.04 / 24.04 Ubuntu 26.04 vs 24.04 LTS: Should You Upgrade Now? Ubuntu Ubuntu 26.04 vs 24.04 LTS: Should You Upgrade Now? Upgrade a Single Package on Ubuntu / Debian with apt Debian Upgrade a Single Package on Ubuntu / Debian with apt APT Cheat Sheet: apt and apt-get Commands for Ubuntu/Debian Cheat Sheets APT Cheat Sheet: apt and apt-get Commands for Ubuntu/Debian How To Install DokuWiki on Ubuntu 22.04|20.04|18.04 Ubuntu How To Install DokuWiki on Ubuntu 22.04|20.04|18.04

Leave a Comment

Press ESC to close