概要
これまでデフォルトのTerminal.appを使っていましたが
- たまに重い
- 設定をファイルで管理したい
- True Color対応してない
などの不満が出てきたので、上記課題を解決できるRust製のAlacrittyに移行してみました。
環境
Alacritty + tmux + vimの環境です。
インストール〜設定
インストール
caskの場合
$ brew install --cask alacritty
dmgの場合
Releases · alacritty/alacritty · GitHub
からダウンロードしてインストール。
基本的な設定
公式のyamlを参考に~/.config/alacritty/alacritty.yml
を追加して設定していきます。
# 余白設定 window: padding: x: 4 y: 4 # フォント設定(サイズのみ) font: size: 13 # スクロール設定 scrolling: history: 10000 multiplier: 3 # tmuxで起動する場合 shell: program: /usr/local/bin/bash args: - -l - -c - "/opt/homebrew/bin/tmux a -t 0 || /opt/homebrew/bin/tmux -u"
カラースキームの設定
Color schemes · alacritty/alacritty Wiki · GitHub
を参考に追記すればOKです。
僕の場合はTender
にしたので以下を追記しました。
# Colors (Tender) colors: # Default colors primary: background: '#282828' foreground: '#eeeeee' # Normal colors normal: black: '#282828' red: '#f43753' green: '#c9d05c' yellow: '#ffc24b' blue: '#b3deef' magenta: '#d3b987' cyan: '#73cef4' white: '#eeeeee' # Bright colors bright: black: '#4c4c4c' red: '#f43753' green: '#c9d05c' yellow: '#ffc24b' blue: '#b3deef' magenta: '#d3b987' cyan: '#73cef4' white: '#feffff'
True Color対応
True Colorに対応していない場合、カラースキームが期待する色合いにならないことがあります。
True Color対応かどうかは以下のスクリプトを実行すると分かります。
curl -s https://gist.githubusercontent.com/lifepillar/09a44b8cf0f9397465614e622979107f/raw/24-bit-color.sh | bash
非対応の場合
このようにグラデーションに継ぎ目が存在します。
対応済みの場合
このようになめらかなグラデーションになっています。
.config/alacritty/alacritty.yml
True Color (24-bit) and italics with alacritty + tmux + vim (neovim) · GitHub
を参考に1つずつ設定していきます。
env: TERM: xterm-256color
.tmux.conf
# tmuxを256色表示できるようにする(True Color対応) set -g default-terminal "tmux-256color" set -ag terminal-overrides ",xterm-256color:RGB"
tmux-256colorを入れてない場合は以下を実行してください
$ brew install ncurses $ /usr/local/opt/ncurses/bin/infocmp tmux-256color > ~/tmux-256color.info $ tic -xe tmux-256color tmux-256color.info
ref: Using tmux-256color with macOS's Terminal.app · Issue #1257 · tmux/tmux · GitHub
.vimrc
if !has('gui_running') && &term =~ '^\%(screen\|tmux\)' let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" endif syntax on set termguicolors colorscheme yourfavcolorscheme
設定し終わったらtmuxを再起動してください。
その他
Mission Controlが重たい
Alacrittyがアクティブな状態でMission Controlを使ってアプリを切り替えようとしたところ、非常にガクガクして重い問題に遭遇しました。
こちらのIssueにいくつかWork Aroundが書いてあります。
僕の場合はバッテリーの設定をいじったら直りました。
日本語が完全にサポートされていない
Cannot input japanese characters · Issue #1101 · alacritty/alacritty · GitHub
や
Support inline "input method" input · Issue #1613 · alacritty/alacritty · GitHub
といったIssueにあるように、変換から確定させるまで日本語が表示されません。
追記(2022/09/28):0.11.0-rc2では直っていました
tmuxでwindow/paneを作ったときの初期化が重い
起動してからは問題ないのですが、初期化処理が体感重く感じます。
tmuxで新規window/paneを作ってから実際にコマンドを打てるようになるまでの時間がデフォルトのターミナルと比べ1.5~2倍くらいかかっています。
まとめ
macOS + Alacritty + tmux + vim環境での構築をしてみました。
ネットで「Rust製&GPU対応で爆速」みたいなことが書かれていますが、今の所パフォーマンス面で体感的に早いとか軽いとかは感じてません。
それ以外の課題に関しては解決できたので良かったです。
またクロスプラットフォーム対応なのでMacじゃなくなっても同じ環境を構築できるのが地味に嬉しいですね。
ただ現メインコミッターのコミュニティでの素っ気なさが若干気になりました。