WezTermは、Rustで書かれたクロスプラットフォームのターミナルエミュレータ。GPUアクセラレーションによる軽量さ、Luaによる高いカスタマイズ性、ターミナルマルチプレクサとしても使える機能性などが特徴。
設定はLuaスクリプト ~/.config/wezterm/wezterm.luaを記載することで行う。
local wezterm = require 'wezterm';
return {
-- ここに設定を記述...
}wezterm.font_with_fallback(obj)を使うと、複数のフォントを指定してフォールバックさせることができる。Linuxの場合、フォントの名前とウェイトは fc-listコマンドで確認できる。
local wezterm = require 'wezterm';
return {
-- ...
-- font
font = wezterm.font_with_fallback({
{family="PlemolJP Console NF", weight="Medium"},
{family="UDEV Gothic NFLG", weight="Regular"},
}),
font_size = 12.0,
-- ...
}デフォルトで多くのカラースキームが用意されている。大好きなIcebergテーマがデフォルトで搭載されていたのでほとんど設定せずに済んだ。
組み込みのカラースキームの一覧は下記から参照できる。
local wezterm = require 'wezterm';
return {
-- ...
-- color scheme
color_scheme = "iceberg-dark"
-- opacity
window_background_opacity = 0.8,
-- ...
}use_fancy_tab_barをfalseに設定し、タブバーの色を設定することで、tmuxのようにCLIと調和した見た目に変更できる。
local wezterm = require 'wezterm';
return {
-- ...
-- tab bar
use_fancy_tab_bar = false,
colors = {
cursor_bg= "#c6c8d1",
tab_bar = {
background = "#1b1f2f",
active_tab = {
bg_color = "#444b71",
fg_color = "#c6c8d1",
intensity = "Normal",
underline = "None",
italic = false,
strikethrough = false,
},
inactive_tab = {
bg_color = "#282d3e",
fg_color = "#c6c8d1",
intensity = "Normal",
underline = "None",
italic = false,
strikethrough = false,
},
inactive_tab_hover = {
bg_color = "#1b1f2f",
fg_color = "#c6c8d1",
intensity = "Normal",
underline = "None",
italic = true,
strikethrough = false,
},
new_tab = {
bg_color = "#1b1f2f",
fg_color = "#c6c8d1",
italic = false
},
new_tab_hover = {
bg_color = "#444b71",
fg_color = "#c6c8d1",
italic = false
},
}
},
-- ...
}ユーザーのログインシェルは変更せずにWezTermの起動時に起動するシェル、または任意のプログラムを指定できる。
local wezterm = require 'wezterm';
return {
-- ...
-- shell
default_prog = {"zsh", "--login"}
-- ...
}キーバインドも自由にカスタマイズできる。詳しくは公式ドキュメントを参照。
local wezterm = require 'wezterm';
return {
-- key
keys = {
{key = "{", mods = "CTRL|SHIFT", action=wezterm.action{ActivateTabRelative=-1}},
{key = "}", mods = "CTRL|SHIFT", action=wezterm.action{ActivateTabRelative=1}},
{key = "p", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByLine=-1}},
{key = "n", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByLine=1}},
{key = "b", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByPage=-1}},
{key = "f", mods = "CTRL|SHIFT", action=wezterm.action{ScrollByPage=1}},
},
}