· yuta

Alacrittyとtmuxでつくる快適なターミナル環境

#terminal#alacritty#tmux

普段の開発でターミナルエミュレータに Alacritty、ターミナルマルチプレクサに tmux を使っています。この組み合わせに落ち着くまでの理解と、実務での使い方を整理しておきます。

Alacritty と tmux の概要

Alacritty とは

Alacritty は Rust 製のクロスプラットフォーム対応ターミナルエミュレータです。特徴は次の通りです。

タブ分割やペイン管理の機能がない代わりに、その役割は tmux のようなマルチプレクサに任せる設計思想になっています。

tmux とは

tmux はターミナル内でセッション・ウィンドウ・ペインを管理できるターミナルマルチプレクサです。

Alacritty は「軽くて速い描画エンジン」、tmux は「画面分割とセッション管理」という役割分担で、組み合わせることで快適なターミナル環境が作れます。

基本的な操作方法

Alacritty の基本設定

設定ファイルは ~/.config/alacritty/alacritty.toml に置きます。よく変更する項目は以下の通りです。

[font]
size = 14.0

[window]
padding = { x = 8, y = 8 }
opacity = 0.95

[colors.primary]
background = '#1e1e2e'
foreground = '#cdd6f4'

設定変更後は再起動せずとも自動でリロードされるため、見た目の調整をしながら試行錯誤しやすいです。

tmux の基本操作

tmux はデフォルトで Ctrl + b がプレフィックスキーです(~/.tmux.conf で変更可能)。

操作 キー
セッション新規作成 tmux new -s セッション名
セッション一覧表示 tmux ls
セッションにアタッチ tmux attach -t セッション名
セッションからデタッチ prefixd
ペインを縦に分割 prefix%
ペインを横に分割 prefix"
ペイン間の移動 prefix → 矢印キー
ウィンドウ新規作成 prefixc
ウィンドウ切り替え prefix数字キー

最低限これだけ覚えておけば、セッションを分割・保持しながら作業ができます。

~/.tmux.conf でよく使うカスタマイズ例です。

# プレフィックスキーを Ctrl+a に変更
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# ペイン分割のキーを直感的に
bind | split-window -h
bind - split-window -v

# マウス操作を有効化
set -g mouse on

業務での活用方法

SSH接続が切れても作業を継続できる

リモートサーバーで長時間かかるビルドやバッチ処理を実行する際、ローカルの通信が不安定でSSHが切断されると通常はプロセスも終了してしまいます。tmuxセッション内で実行しておけば、接続が切れてもセッションはサーバー側に残り続け、再接続後に tmux attach するだけで作業を再開できます。

タスクごとにペインを分けて並行作業する

1つのウィンドウを複数ペインに分割し、以下のような使い分けをしています。

画面を切り替えることなく状態を見比べられるので、コンテキストスイッチのコストが減ります。

プロジェクトごとにセッションを分けて管理する

複数のプロジェクトを並行して触っている場合、プロジェクトごとにtmuxセッションを作成しています。

tmux new -s project-a
tmux new -s project-b

セッションを切り替えるだけでそれぞれの作業状態(開いているペインやコマンド履歴)を保持したまま行き来できるため、都度ターミナルを開き直したりディレクトリ移動したりする手間がありません。

軽量な描画で大量ログの確認もストレスがない

CIのログやDBのクエリ結果など大量のテキストを出力するコマンドを実行することが多いのですが、AlacrittyのGPUレンダリングのおかげでスクロールや出力の描画がもたつきません。ペアプログラミングで画面共有をする際にも、動作が軽いことでストレスなく操作できています。

まとめ

まだ使いこなせていないプラグイン(tmux plugin manager など)もあるので、今後さらに環境を育てていきたいです。