5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Progate Path コミュニティAdvent Calendar 2023

Day 14

【Wez's Terminal Emulator】どこでも同じターミナルを用意する

Posted at

/darallium/です!ご覧いただきありがとうございます. 😊

「CLI初心者でも感動するような,それでいて汎用性・拡張性の高いCLIツール」を紹介する7日間の最終日の記事です 🙇

本日は「どこへ行っても通用する最強のターミナル」をテーマに,Wez's Terminal Emulatorを紹介します:relaxed:

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を無視して汎用的に入れてくれるようだ.なかなか便利そうだ.

チュートリアル

image.png

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.luareturnするconfigだ.

キーコンフィグ

キーコンフィグをいじりたい場合は,以下の手順を取る.

  1. デフォルトキーコンフィグをと全く同じキーバインドのスクリプトを記述する
  2. デフォルトキーコンフィグを無効化する

まずは,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の先輩方

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?