• 加筆
  • 2019.02.05
  • 修正
二 月
1
金曜日
2019

GPUを使う高速なターミナルエミュレータAlacrittyを使う

『macOS Mojaveのキーリピートで困った話』 の対応策としてalacrittyに乗り換えてみる。


インストール

Alacritty本体

brew cask経由でインストールできるものの、後述のmanやfishの補完、terminfoを入れたい場合には別途ソースが必要になる。
今回はこれらも含めてインストールしたいのでいっそのことソースからビルドしてインストールすることにした。

Manual Installationに従って実施。

リポジトリからソースを取得。

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

rustコンパイラ rustup のインストール。

curl https://sh.rustup.rs -sSf | sh

パスを通す。

echo 'set PATH $PATH ~/.cargo/bin' > ~/.config/fish/conf.d/rust.fish
source ~/.config/fish/conf.d/rust.fish

rustコンパイラをstable版に設定。

rustup override set stable
rustup update stable

ビルドとインストール。

make app
cp -r target/release/osx/Alacritty.app /Applications/

Manual Page

Manual pageをインストール。

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

Fish completions

Manual Installation上の記述はfish 2.x用になっている点に注意する。
fish 2.xまではデータディレクトリの変数名は $__fish_datadir であったが 3.xからは$__fish_data_dirに変更されている。

fish 2.xの場合

sudo cp alacritty-completions.fish $__fish_datadir/vendor_completions.d/alacritty.fish

fish 3.xの場合

sudo cp alacritty-completions.fish $__fish_data_dir/vendor_completions.d/alacritty.fish

Terminfo

tic コマンドを使ってalacritty用のterminfoをインストールするのだがOS X El Capitan以降ではSystem Integrity Protection(SIP)によって /usr 配下にはrootでも書き込む事はできない。(/usr/localは除く )

ticコマンドは /usr/share/terminfo への書き込みができない場合 $HOME/.terminfoに書き込むようになっているため sudo せずに以下コマンドでalacritty用のterminfoをインストールする。

tic -e alacritty,alacritty-direct alacritty.info

以下のようなメッセージがもりもりと表示されるが無視。

"alacritty.info", line 17, col 8, terminal 'alacritty-direct': unknown capability 'RGB'
"alacritty.info", line 27, col 43, terminal 'alacritty+common': unknown capability 'AX'
"alacritty.info", line 27, col 47, terminal 'alacritty+common': unknown capability 'XT'
"alacritty.info", line 54, col 41, terminal 'alacritty+common': unknown capability 'E3'

コンフィグレーション

alacrittyにはコンフグレーション用のUIは無くyamlファイルに設定を記述する。
yamlファイルの配置場所は従来の $HOME/.alacritty.yml に加えて XDG Base Directory Specificationに沿った以下の場所に配置する事も出来る。

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

yamlの雛形は以下から取得する。

https://github.com/jwilm/alacritty/blob/master/alacritty.yml

好みに応じてコンフィグレーションを修正。

余白とフォントを修正。

window:
  padding:
    x: 8
    y: 4

font:
  normal:
    family: "RobotoMono Nerd Font"
    style: Regular
  bold:
    family: "RobotoMono Nerd Font"
    style: Bold
  italic:
    family: "RobotoMono Nerd Font"
    style: Italic
  size: 13

なおフォントを設定しても日本語がうまく表示されない場合は正しく環境変数LANGが設定されているかどうか確認する。

日本語キーボードを使用しているためバックスラッシュ入力のためキーバインディングを調整する。
YENキーでバックスラッシュ、Alt + YENの円記号が入力されるようにする。

key_bindings:
  ・ ・ ・
  - { key: Yen,                     chars: "\x5C"                        }
  - { key: Yen,      mods:Alt,      chars: "\xA5"                        }

以上でalacrittyのセットアップは終了。
普段と同じようにtmuxを起動し、キビキビと動くCUI生活を満喫することが出来るようになる。