/darallium/です!ご覧いただきありがとうございます. 😊
「CLI初心者でも感動するような,それでいて汎用性・拡張性の高いCLIツール」を紹介する7日間の最終日の記事です 🙇
本日は「どこへ行っても通用する最強のターミナル」をテーマに,Wez's Terminal Emulatorを紹介します
Wez's Terminal Emulator
Wez's Terminal Emulatorとは,Rust 製のターミナルエミュレータである.
Linux, MacOS, Windows OSのすべての環境で動き,同じコンフィグで同じ動作を示す.GPUも使用するので描画も高速である.ターミナルエミュレータの外に,ターミナルマルチプレクサとしての機能も果たす.
めんどくさいので,本稿ではWezTerm
と表記する.
install
dependencies
windows
winget upgrade wez.wezterm
macOS
$ brew install --cask wezterm
Debian系
上記のリンクから合わせてダウンロードすればよい.
curl -LO <fileリンク>
sudo apt install -y <ファイル名>
でインストールできることを覚えておけばよいか.
そのほかのLinux dist
上記のリンクからAppImageをダウンロードし,実行すれば入る.
筆者はAppImageというものを知らなかったが,Distを無視して汎用的に入れてくれるようだ.なかなか便利そうだ.
チュートリアル
windowsの場合wezterm-gui.exe,そのほかの場合weztermと打ったら実行できるだろう.
wezterm show-keys
とすると,キーバインドが表示される.
大量に表示されるので遊んでみるといいだろう. CopyModeやPane, windowなどはこのターミナルの大きな特徴の一つなので楽しむといいだろう.
コンフィグいじり
メ イ ン コ ン テ ン ツ
筆者がこれがかなり大きい強みだと思っている部分だ.イベントフックして機能を追加してみたり,キーバインドをいじいじしてNeovimのような魔環境を構築してみたり,色味をいじって気持ちよくなってもよい.
ことはじめ
まずは雛形を作ろう.すべてのOSで~/.config/wezter/wezterm.lua
に記述すればよい.以下を記述しよう.
-- Pull in the wezterm API
local wezterm = require 'wezterm'
-- This table will hold the configuration.
local config = {}
-- In newer versions of wezterm, use the config_builder which will
-- help provide clearer error messages
if wezterm.config_builder then
config = wezterm.config_builder()
end
-- This is where you actually apply your config choices
-- For example, changing the color scheme:
config.color_scheme = 'AdventureTime'
-- and finally, return the configuration to wezterm
return config
スクリプトを複数書きたい場合は,
~/.config/wezterm/
以下にluaスクリプトを配置し,wezterm.lua
からrequireしてapply_to_config(config)
してやればよい.
require("script name")
するとき,~/.config/wezterm/
を親として相対パスで指定してやれば良い.~/.config/wezterm/submod.lua
の場合はrequire("submod").apply_to_config(config)
だ.このconfigはwezterm.lua
がreturn
するconfig
だ.
キーコンフィグ
キーコンフィグをいじりたい場合は,以下の手順を取る.
- デフォルトキーコンフィグをと全く同じキーバインドのスクリプトを記述する
- デフォルトキーコンフィグを無効化する
まずは,wezterm show-keys --lua >> ~/.config/wezterm/keybind.lua
し,require("keybind")
しよう.このコマンドは,登録されているキーバインドをkeybind.luaにリダイレクトして書き込む.
キーを設定するとき,
<****_mode> = {
{ key = '<key>', mods = '<modifier, altやCTRLなどをパイプで区切って>', actions = <実行するコマンド> ''}
}
などとすれば割り当たる.詳しくは公式ドキュメントを読もう.
見た目をよくする
今回は筆者が大好きなcatppuccin
テーマを導入する.
WezTermには,700を超えるカラースキームが内蔵されている.これは,iTerm2やGogh
で使われていたものがすべて使用できる.
しかも,導入が非常に簡単で,
config.color_scheme = 'Catppuccin Macchiato'
などとすれば入る.以下のリンクにリストがあるので好きなスキームを入れてみてほしい.
あとがき
WezTermについて,Luaでの設定として見た目とキーバインドの設定を紹介した.しかし,本題はこれからで,イベントやペイン,タブを駆使してtmuxライクな作業をしてみたり,クイックセレクトなどを駆使して快適ターミナルライフをすごしてみよう.他にも,Sixelに対応しているのでimgcatなどを用いて画像や動画を表示することができる.いろいろ試してみてほしい.
references
Ritsumeikan Security Teamの先輩方