肉球でキーボード

MLエンジニアの技術ブログです

ターミナルをiTerm2からAlacrittyに変更した

ターミナルをiTerm2からAlacrittyに変えたので、Alacrittyの設定方法について紹介します。

Alacrittyとは

Rust製のターミナルエミュレーターです。

公式READMEでは以下のように特徴を説明しています。

  • 高速に動作
  • configファイルで柔軟にカスタマイズ可能
  • BDS, Linux, macOS, Windowsのマルチプラトフォームに対応

他のターミナルエミュレーターの機能にある

  • タブ
  • ウィンドウ分割
  • GUIでの設定

といった機能は意図的に実装されていないようです。

タブやウィンドウ分割などの機能は、ウィンドウマネージャーやtmuxに任せる方が適切と作者は指摘していて、ターミナルとして必要最低限の機能に絞っています。

GUIでの設定がないのも、configファイルに管理をまとめられるメリットがあります。

オリジナル特徴

公式READMEにAlacrittyの機能が書かれています。
alacritty/docs/features.md at master · alacritty/alacritty · GitHub

Viモード

ターミナル内をVimのキーバーインドで移動することができます。

デフォルトでは Ctrl + Shift + SpaceVimモードを起動します。

範囲選択をVimと同じ操作で行えます。

検索

ターミナル内の文字を検索できます。

前方検索を Ctrl + Shift + f  (Command + f  on MacOS)

後方検索を Ctrl + Shift + b  (Command + b  on MacOS)

で起動します。

Hints

ターミナル内のハイパーリングやテキストを見つけ、他のアプリケーションに渡すことできます。

Ctrl + Shift + U でターミナル内のURLを見つけ、ブラウザで開くことできます。

選択範囲の拡大

マウス操作で選択範囲を拡張できます。

ダブルクリック: 意味的に一つの言葉を選択

トリプルクリック: 行選択

Ctrl + マウス操作: ブロック選択

クリックでURLを開く

ターミナル内のURLをクリックで開くことができます。

マルチウィンドウ

複数ウィンドウでターミナルを実行することができます。

インストール

複数のインストール方法が提供されていますが、自分はbrewでインストールしました。

$ brew install --cask alacritty

設定

~/.config/alacritty/alacritty.toml でAlacrittyの設定を管理します。

バージョン0.13.0以降、設定ファイルの形式がyamlからtoml形式に変更がありました。

alacritty.toml は自動で作成されないので、自身で作成する必要があります。

設定パラメーターはこちらの公式ドキュメントに記載されています。
Alacritty

各種設定のデフォルト値のalacritty.tomlは以下のようになります。

gist31550242085f9233088be8a49241a7ed

カラーテーマの設定

カラーテーマの設定を公式が用意しているので、importすることですぐに使うことができます。
GitHub - alacritty/alacritty-theme: Collection of Alacritty color schemes

以下のコマンドで ~/.config/alacritty/themes以下にレポジトリをダウンロードしておきます。

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

alacritty.tomlの上部で使用したカラーテーマのtomlファイルをimportします。

import = ["~/.config/alacritty/themes/themes/ubuntu.toml"]

[shell]
program = "/bin/zsh"
args = ['--login']

# 以下設定....

例えばubuntuテーマを読み込むと以下のようなカラーテーマが適応されます。

color theme

起動時にtmuxを実行

Alacritty起動時にtmuxコマンドを実行する設定です。

セッションがあればアタッチし、なければ新しくセッションを作成します。

[shell]
program = "/bin/zsh"
args = ["-l", "-c", "tmux a -t 0 || tmux"]

まとめ

iTerm2からAlacrittyに移行して、ターミナルを操作してる時のもっさり感がなくなったなと感じてます。しばらくはターミナルはAlacrittyを使い続けると思います。

Alacrittyの設定のみを紹介しましたが、プロンプトやzshの設定、tmuxの設定をカスタマイズしていくことになると思います。

参考