Rust製の爆速端末Alacrittyのインストールと設定方法

alacrittyTerminal

Rust製のGPUで高速レンダリングするターミナルエミュレータAlacrittyを使ってみたので、インストール方法と設定方法をまとめました。

Alacrittyの特徴

alacrittyの特徴としては以下の3つです。

  • GPUでレンダリングが高速化されている
  • クロスプラットホーム(Windows, MacOS, Linux)
  • .alacritty.ymlで手軽に設定が書ける

特にパフォーマンスに関しては凄まじく良くなっていて、gnome-terminalで感じていたモッサリ感やスクロール時のカクつきが完全になくなり、メモリの消費量も大幅に減りました。正直、デフォルトのターミナルをAlacrittyにしてもいいのでは?と思えるほどの完成度です。

AlacrittyのInstall方法

公式のInstall手順は以下に載っています。ただ、少し長いのでこの記事ではUbuntu向けに必要な部分だけを抜粋します。

alacritty/alacritty
A cross-platform, GPU-accelerated terminal emulator - alacritty/alacritty

Alacrittyをお手軽にインストールする

とりあえず、動かして試してみたいという方は以下のコマンドだけでalacrittyをインストールできます。 以下の方法ではコマンドの補完やデスクトップエントリーなどは設定できませんが、ざっくりと動かす分には問題ありません。

まずはビルドするのに必要なパッケージをインストールします。

sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev python3

cargoでalacrittyをインストールします。 cargoを入れていない場合は、まず下のコマンドで rustupcargoをインストールします。

curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh -s -- -y

cargoが入ったら、下のコマンドでalacrittyをインストールします。

cargo install alacritty

これで alacrittyを起動できます。

alacritty

AlacrittyをFull Installする

Alacrittyをフルインストールするにはリポジトリをビルドする必要があります。Full Installすることで以下の機能が使えるようになります。

  • alacritty コマンドの補完
  • alacrittyコマンドのマニュアル
  • terminfoの追加(端末内で正常に色を表示するために必要です)
  • デスクトップエントリー(UbuntuのDockにアイコンを表示できるようになります)

まず、リポジトリをクローンしてきます。

git clone https://github.com/alacritty/alacritty.git
cd alacritty

下のコマンドでrustupとcargoをインストールします。

curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh -s -- -y

下のコマンドでrustupをupdateします。

rustup override set stable
rustup update stable

下のコマンドでbuild dependenciesをインストールします。

sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev python3

下のコマンドでalacrittyをビルドします。

cargo build --release

ビルドが終わったら、下のコマンドでterminfoのチェックをします。

infocmp alacritty

エラーがでなければ成功です。

エラーが出るなら以下のコマンドでterminfoを設定します。

sudo tic -xe alacritty,alacritty-direct extra/alacritty.info

以下のコマンドでDesktop entry(デスクトップ上のショートカット)を登録します。

sudo cp target/release/alacritty /usr/local/bin # or anywhere else in $PATH
sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install extra/linux/Alacritty.desktop
sudo update-desktop-database

下のコマンドでmanualを追加します。

sudo mkdir -p /usr/local/share/man/man1
gzip -c extra/alacritty.man | sudo tee /usr/local/share/man/man1/alacritty.1.gz > /dev/null

下のコマンドでalacrittyのコマンド補完を追加します。

echo "source $(pwd)/extra/completions/alacritty.bash" >> ~/.bashrc

Alacritty Settings

alacrittyの設定はalacritty.ymlに書きます。ファイルは以下のパスのうちのいずれかに配置します。

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

Alacrittyをデフォルトの端末にする

以下の手順でAlacrittyをデフォルトの端末に設定し、Ctrl+Alt+tでAlacrittyが開くようにします。

下のコマンドでx-terminal-emulatorのalacrittyの優先度を50に設定します。

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

以下のコマンドで設定状況を確認できます。

sudo update-alternatives --display x-terminal-emulator

Alacrittyの優先度が他の端末より大きければ問題ありません。

以下のコマンドでCLI上で優先度を変更できます。

sudo update-alternatives --config x-terminal-emulator

やっぱり、デフォルトはgnome-terminalかなぁと思ったら、以下のコマンドでalacrittyをalternativesから消せます。

sudo update-alternatives --remove "x-terminal-emulator" "/usr/local/bin/alacritty"

Alacrittyでtmux, NeoVimにTrue colorを設定する

特に設定しない場合、tmux上で開いたNeoVimの :checkhealthには以下のようなエラーが表示されます。

WARNING: Neither Tc nor RGB capability set. 
True colors are disabled. |'termguicolors'| won't work properly.

~/.config/alacitty/alacritty.ymlに以下を追加します。

env:
    TERM: alacritty

~/.tmux.confに以下を追加します。

set -g default-terminal "screen-256color"
set-option -sa terminal-overrides ',alacritty:RGB'

詳しくはこちらのIssueをご覧ください。

これでtmux上のNeoVimも正常な色で表示されるようになります。

Alacrittyにカラースキームを設定する

公式のWikiに代表的なカラースキームが載っているので参考にしてみてください。

ここではOne Darkを設定します。

~/.config/alacritty/alacritty.ymlに以下を追加します。

# Colors (One Dark)
colors:
  # Default colors
  primary:
    background: '#282c34'
    foreground: '#abb2bf'

  # Normal colors
  normal:
    # NOTE: Use '#131613' for the `black` color if you'd like to see
    # black text on the background.
    black:   '#282c34'
    red:     '#e06c75'
    green:   '#98c379'
    yellow:  '#d19a66'
    blue:    '#61afef'
    magenta: '#c678dd'
    cyan:    '#56b6c2'
    white:   '#abb2bf'

  # Bright colors
  bright:
    black:   '#5c6370'
    red:     '#e06c75'
    green:   '#98c379'
    yellow:  '#d19a66'
    blue:    '#61afef'
    magenta: '#c678dd'
    cyan:    '#56b6c2'
    white:   '#ffffff'

Fontサイズを変更する

~/.config/alacritty/alacritty.ymlに以下を追加します。

font:
    size: 13

デフォルトは11ですが、少し小さいので13を指定しています。

最近、Rustで既存のCLIツールを高速化・高機能化する流れが出てきています。 ls よりも圧倒的に使いやすくなった exaというRust製のツールも便利なので合わせて使ってみてください。

コメント

タイトルとURLをコピーしました