ターミナルをiTerm2からAlacrittyに変えたので、Alacrittyの設定方法について紹介します。
Alacrittyとは
Rust製のターミナルエミュレーターです。
公式READMEでは以下のように特徴を説明しています。
他のターミナルエミュレーターの機能にある
- タブ
- ウィンドウ分割
- GUIでの設定
といった機能は意図的に実装されていないようです。
タブやウィンドウ分割などの機能は、ウィンドウマネージャーやtmuxに任せる方が適切と作者は指摘していて、ターミナルとして必要最低限の機能に絞っています。
GUIでの設定がないのも、configファイルに管理をまとめられるメリットがあります。
オリジナル特徴
公式READMEにAlacrittyの機能が書かれています。
alacritty/docs/features.md at master · alacritty/alacritty · GitHub
Viモード
ターミナル内をVimのキーバーインドで移動することができます。
デフォルトでは Ctrl
+ Shift
+ Space
でVimモードを起動します。
範囲選択を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テーマを読み込むと以下のようなカラーテーマが適応されます。
起動時にtmuxを実行
Alacritty起動時にtmuxコマンドを実行する設定です。
セッションがあればアタッチし、なければ新しくセッションを作成します。
[shell] program = "/bin/zsh" args = ["-l", "-c", "tmux a -t 0 || tmux"]
まとめ
iTerm2からAlacrittyに移行して、ターミナルを操作してる時のもっさり感がなくなったなと感じてます。しばらくはターミナルはAlacrittyを使い続けると思います。
Alacrittyの設定のみを紹介しましたが、プロンプトやzshの設定、tmuxの設定をカスタマイズしていくことになると思います。