大学生、WindowsでWezterm(Nightly)の設定を構築する備忘録
後続のためにWeztermの設定方法を残しておこうと思います。
もともと『大学生、Windowsにおける快適な操作環境を思案』という記事に全文載せるつもりでしたが、Weztermに限定した記事があれば読みやすいという事で分離しています。
Windowsで行うWeztermの設定方法を探している人向けなので、ソフトウェアの概要は他の人に任せます。
Weztermのダウンロードページはこちらです。
Weztermの基本的な設定方法
Weztermの基礎的な設定を知りたい方は下記の記事を読むと理解できます。・・・打つのが面倒くさいのでこちらを読んでください。・・・簡単な説明はしておきます。
Weztermの設定にはLuaを使用します。
-- wezterm API を取り込む
local wezterm = require("wezterm")
-- 設定を保持する
local config = wezterm.config_builder()
-- ここに設定を書き込む
-- 最後に設定をweztermに返す。
return config
まず、LuaでWeztermを設定するときに必要なこととして、Weztermで用意されているAPI(Weztermの設定)を読み込む必要があります。
次に、wezterm.config_builder()
を使用して設定した内容を保持するようにします。ここはconfig = {}
でもいいです。
最後にreturn config
で設定した内容をWezterm側に送ります。
以上です。
簡単ですね。
ここでWeztermの設定を行ったファイルを例として載せます。また、この設定は半年前の内容なので、この後記載する現在の設定と非常に差異があります。
コード
-- wezterm API を取り込む
local wezterm = require("wezterm")
-- 設定を保持する
local config = wezterm.config_builder()
config.automatically_reload_config = true
config.window_close_confirmation = "NeverPrompt"
config.keys = require("keybinds").keys
config.key_tables = require("keybinds").key_tables
config.mouse_bindings = require('mousebinds').mouse_bindings
config.disable_default_mouse_bindings = false
local text_width = 12
if wezterm.target_triple == "x86_64-pc-windows-msvc" then
config.default_prog = {"pwsh.exe"}
elseif wezterm.target_triple == "x86_64-apple-darwin" then
config.default_prog = {'zsh.exe'}
end
config.use_ime = true
config.animation_fps = 60
config.scrollback_lines = 1000
config.front_end = "WebGpu"
config.window_decorations = 'RESIZE|INTEGRATED_BUTTONS'
local scheme = 'Night Owl (Gogh)'
config.color_scheme = scheme
config.window_background_opacity = 0.9
config.win32_system_backdrop = "Disable"
config.font = wezterm.font("UDEV Gothic JPDOC", {weight="Regular",stretch="Normal",italic=false})
config.font_size = 12.0
config.default_cursor_style = "BlinkingBar"
config.cursor_blink_rate = 500
config.animation_fps = 1
config.cursor_blink_ease_in = 'Constant'
config.cursor_blink_ease_out = 'Constant'
-- タブ
config.use_fancy_tab_bar = true
config.tab_bar_at_bottom = false
config.hide_tab_bar_if_only_one_tab = false
config.show_new_tab_button_in_tab_bar = false
-- config.show_close_tab_button_in_tabs = false
config.window_frame = {
font = wezterm.font("Roboto"),
font_size = 10.0,
inactive_titlebar_bg = "None",
active_titlebar_bg = "None",
}
config.colors = {
tab_bar = { inactive_tab_edge = "none" },
}
-- カラースキーム変更
config.window_background_gradient = {
colors = { wezterm.get_builtin_color_schemes()[scheme].background }
}
-- タブタイトル
local SOLID_LEFT_ARROW = wezterm.nerdfonts.pl_right_hard_divider
local SOLID_RIGHT_ARROW = wezterm.nerdfonts.pl_left_hard_divider
wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width)
local foreground = "#FFFFFF"
local background = hover and "#355484" or "#7e7e7e"
if tab.is_active then
background = "#6584B4"
end
local edge_background = "none"
local edge_foreground = background
-- pwsh.exe
icon = wezterm.nerdfonts.md_console_line
icon_foreground = "#00AAFF"
bar_title = "PowerShell 7 (x64)"
if tab.active_pane.title == "cmd.exe" then
icon = wezterm.nerdfonts.md_console_line
icon_foreground = "#999999"
bar_title = "CommandPrompt"
elseif tab.active_pane.title == "wsl.exe" then
icon = wezterm.nerdfonts.md_console_line
icon_foreground = "#FFAA00"
bar_title = "wsl"
elseif tab.active_pane.title == "nvim.exe" then
icon = wezterm.nerdfonts.custom_neovim
icon_foreground = "#30c030"
bar_title = "Neovim"
elseif tab.active_pane.title == "btm.exe" then
icon = wezterm.nerdfonts.cod_circuit_board
icon_foreground = "#F0F0F0"
bar_title = "bottom"
end
for _ = #bar_title, text_width - 1, 1 do
bar_title = bar_title .. " "
end
local zoomed = tab.active_pane.is_zoomed and wezterm.nerdfonts.md_magnify_plus_outline or ''
local title = "" .. zoomed .. wezterm.truncate_right(bar_title, text_width) .. ""
return {
{ Background = { Color = edge_background } },
{ Foreground = { Color = icon_foreground } },
{ Text = icon },
{ Text = "" },
{ Background = { Color = edge_background } },
{ Foreground = { Color = edge_foreground } },
{ Text = SOLID_LEFT_ARROW },
{ Background = { Color = background } },
{ Foreground = { Color = foreground } },
{ Text = title },
{ Background = { Color = edge_background } },
{ Foreground = { Color = edge_foreground } },
{ Text = SOLID_RIGHT_ARROW },
}
end)
-- 最後に設定をweztermに返す。
return config
全部で116行です。
Keybinds.lua
の設定はこちらを参考にしてください。
最終的な見た目
設定を分離させる
ここからはWeztermを使いやすくしていきましょう。
コンフィグを読み込むLuaファイル
そのためにはまず、Pluginにあるluaファイルを読み取るwezterm.luaを作成します。configディレクトリに設定ファイルを入れて読み込むようにすることで、コードの可読性を上げることができます。
ここではWezTermでターミナルを自分なりのデザインにしよう![Mac向け]のGitHubを参考にします。
local wezterm = require("wezterm")
local config = wezterm.config_builder()
function merge_config(config, new_config)
for k, v in pairs(new_config) do
config[k] = v
end
end
local tab = require("config/tab")
merge_config(config, tab)
return config
使いやすいように少々改良しましょう。
local wezterm = require("wezterm")
local config = wezterm.config_builder()
local function merge_config(file)
for k, v in pairs(require(file)) do
config[k] = v
end
end
merge_config("config/tabbar")
return config
configディレクトリにあるtabbar.luaを読み込むコードです。
wezterm.globをうまく使えばconfig内にあるファイルをすべて自動で読み取ることもできますが・・・ここではファイルを指定して管理する方面で進めていきます。
/
├─ wezterm.lua
└─ config
├─ ここに設定を入れていく
├─ colorscheme.lua
└─ *.lua
ディレクトリツリーを2秒で書けるアプリを作りましたのDir Makerを使うと分かりやすくディレクトリツリーが作れます。
設定ファイル
設定ファイルで使われている設定の名前は各自で調べてください。必要最低限しか説明しません。
general.lua
基本的な設定を入れるためのファイルです。
local config = {}
config.use_ime = true
config.automatically_reload_config = true
config.disable_default_key_bindings = true
config.disable_default_mouse_bindings = false
config.scrollback_lines = 1000
config.window_close_confirmation = "NeverPrompt"
return config
この記事を見ながら構築する場合、automatically_reload_config = true
を入れておきましょう。設定ファイルの変更を検知して再読み込みする設定です。
また、use_ime = true
が入っていないとIMEが使えないので注意。
frame.lua
Weztermのフレーム設定、ようは見た目です。
local config = {}
config.front_end = "WebGpu"
config.window_decorations = 'INTEGRATED_BUTTONS'
config.window_background_opacity = 0.9
config.text_background_opacity = 0.9
config.animation_fps = 60
config.win32_system_backdrop = "Disable"
config.default_cursor_style = "BlinkingBar"
config.cursor_blink_rate = 500
config.cursor_blink_ease_in = 'Constant'
config.cursor_blink_ease_out = 'Constant'
config.window_frame = {
inactive_titlebar_bg = 'None',
active_titlebar_bg = 'None',
}
config.colors = {
tab_bar = {
inactive_tab_edge = "None"
}
}
config.inactive_pane_hsb = {
saturation = 0.9,
brightness = 0.8,
}
return config
Windowsではfront_end = "WebGpu"
を入れないとちらつく可能性があります。Weztermの下部がちらついている場合はこれを入れましょう。
window_decorations = 'INTEGRATED_BUTTONS'
を入れることで、上部バーを消し、最小化最大化削除のボタンをタブの位置に置いとけます。Windowsでよくみるネイティブウィンドウを消す設定です。
window_background_opacity
はターミナルの透過率を調整できる設定で、text_background_opacity
はターミナルに表示する画像版です。後者は使用しません。
win32_system_backdrop = "Disable"
は閉じる前の確認を消す設定です。
colorscheme.lua
Weztermのカラースキームを変更するファイルです。
Weztermに対応しているカラースキームはこちらで確認できます。
local config = {}
--[[ - Like Color Scheme -
'Powershell (Gogh)'
'Night Owl (Gogh)'
'iceberg-dark'
--]]
local scheme = 'Night Owl (Gogh)'
config.color_scheme = scheme
config.window_background_gradient = {
colors = { require("wezterm").get_builtin_color_schemes()[scheme].background },
}
return config
window_background_gradient
はタブバーの色をターミナルに合わせるものです。これがないと透明になります。
ただ、use_fancy_tab_bar
がないとタブバーが変わらないのでframe.lua
のどこかにでも入れてください。
config.use_fancy_tab_bar = true
font.lua
フォントの設定です。
local config = {}
config.font = require("wezterm").font_with_fallback{
{
family = "UDEV Gothic JPDOC",
weight="Regular",stretch="Normal",italic=false
},
"Noto Color Emoji",
"Symbols Nerd Font",
}
config.font_size = 12.0
return config
font_with_fallback
で上からフォントを読み込んでいきます。
私はBIZ UDゴシックとJetBrains Monoが融合したUDEV Gothicを使っています。
tabbar.lua
local config = {}
config.enable_tab_bar = true
config.use_fancy_tab_bar = true
config.tab_bar_at_bottom = false
config.hide_tab_bar_if_only_one_tab = false
config.show_new_tab_button_in_tab_bar = false
config.show_close_tab_button_in_tabs = false
local wezterm = require("wezterm")
local tabicon = require("config/tabicon")
local text_width = #"Powershell"
local SOLID_LEFT_ARROW = wezterm.nerdfonts.ple_lower_right_triangle
local SOLID_RIGHT_ARROW = wezterm.nerdfonts.ple_upper_left_triangle
wezterm.on("format-tab-title", function(tab, _, _, _, _, _)
-- (tab, tabs, panes, config, hover, max_width)
-- タブの色
local foreground = tab.is_active and "#F0F0F0" or "#E0E0E0"
local background = tab.is_active and "#0050A0" or "#909090"
local edge_background = "None"
local edge_foreground = background
-- タブのアイコン
local tab_info = tabicon(tab.active_pane.foreground_process_name)
local icon = tab.active_pane.is_zoomed and wezterm.nerdfonts.md_magnify_plus_outline or tab_info.icon
local icon_color = tab_info.icon_color
local title = tab_info.title
title = title .. string.rep(" ",text_width - #title)
title = wezterm.truncate_right(title, text_width)
return {
{ Background = { Color = edge_background } },
{ Foreground = { Color = edge_foreground } },
{ Text = SOLID_LEFT_ARROW },
{ Foreground = { Color = icon_color } },
{ Background = { Color = background } },
{ Text = icon .. " "},
{ Foreground = { Color = foreground } },
{ Text = title },
{ Background = { Color = edge_background } },
{ Foreground = { Color = edge_foreground } },
{ Text = SOLID_RIGHT_ARROW },
}
end)
return config
enable_tab_bar
はタブバーを表示するかどうかです。
use_fancy_tab_bar
をtrue
にすることで現代的な見た目になります。
hide_tab_bar_if_only_one_tab
があると、タブが一つの時にタブを非表示にしてくれます。
show_close_tab_button_in_tabs
はタブを閉じるボタンを非表示にします。この設定だけNightlyの機能なので、閉じるボタンを非表示にしたいならNightlyで入れ直してください。
wezterm.on("format-tab-title", function(tab, _, _, _, _, _)
は能動的にタブバーの変更ができます。
例えば、タブの色を変更したりタブの名前を変更したり、それから時間の表示も・・・とにかくいろいろできます。
tab.is_active and "#F0F0F0" or "#E0E0E0"
でアクティブタブかどうかで色を変えられます。
ここではtabicon(tab.active_pane.foreground_process_name)
でtabicon.lua
に、そのタブで実行されているプロセスを送って、アイコンと色と名前を返すようにしています。
tab.active_pane.is_zoomed and wezterm.nerdfonts.md_magnify_plus_outline
はペイン分割を行っている時に、ペインを一つだけ表示しているならwezterm.nerdfonts.md_magnify_plus_outline
のアイコンを表示するようにしています。
あとはタブバーの長さを調整してreturnで返すように表示するようにします。
tabicon.lua
このLuaファイルでタブに表示する名前、アイコンと色の三つを返します。
local wezterm = require("wezterm")
local function get_tab_icon(tab)
-- 拡張子を変更するようにする
tab = string.gsub(tab:match("[^\\]+$"), ".exe", "")
local title = "PowerShell 7 (x64)"
local icon = wezterm.nerdfonts.md_console_line
local icon_color = "#50A0F0"
if tab == "pwsh" then
-- title = "PowerShell 7 (x64)"
-- icon = wezterm.nerdfonts.md_console_line
-- icon_color = "#50A0F0"
elseif tab == "cmd" then
title = "CommandPrompt"
icon = wezterm.nerdfonts.md_console_line
icon_color = "#101010"
elseif tab == "wslhost" then
title = "WSL"
icon = wezterm.nerdfonts.cod_terminal_linux
icon_color = "#e95420"
elseif tab == "btm" then
title = "bottom"
icon = wezterm.nerdfonts.cod_circuit_board
icon_color = "#F0F0F0"
elseif tab == "yazi" then
title = "yazi"
icon = wezterm.nerdfonts.cod_folder
icon_color = "#F9F900"
elseif tab == "broot" then
title = "broot"
icon = wezterm.nerdfonts.cod_folder
icon_color = "#909000"
elseif tab == "lazygit" then
title = "Lazygit"
icon = wezterm.nerdfonts.dev_git
icon_color = "#25d580"
elseif tab == "micro" then
title = "micro"
icon = wezterm.nerdfonts.md_alpha_m_box
icon_color = "#2e3192"
-- Neovim
elseif tab == "nvim" or
tab == "language_server_windows_x64" then
title = "Neovim"
icon = wezterm.nerdfonts.custom_neovim
icon_color = "#30c030"
elseif tab == "clangd" then
title = "Neovim"
icon = wezterm.nerdfonts.dev_c
icon_color = "#085e9f"
elseif tab == "rust-analyzer" or
tab == "rust-analyzer-proc-macro-srv" then
title = "Neovim"
icon = wezterm.nerdfonts.dev_rust
icon_color = "#f74b00"
elseif tab == "python" then
title = "Neovim"
icon = wezterm.nerdfonts.dev_python
icon_color = "#ffdd50"
elseif tab == "lua-language-server" then
title = "Neovim"
icon = wezterm.nerdfonts.dev_lua
icon_color = "#080884"
else
title = tab
end
return {
icon = icon,
icon_color = icon_color,
title = title,
}
end
return get_tab_icon
処理部分は一つのため、M = {}
のようなテーブルを使っていません。
やっていることは単純で、まずtab = string.gsub(tab:match("[^\\]+$"), ".exe", "")
で拡張子を消します。
local title = "PowerShell 7 (x64)"
local icon = wezterm.nerdfonts.md_console_line
local icon_color = "#50A0F0"
次にtitle、icon、icon_colorの三つの変数を初期化し、そのあとに条件式で合致したプロセス名に分岐して三つの変数の中身を変えて、テーブルにして返します。
もともと、yazi.exe
やnvim.exe
のように拡張子が入っていましたが、そうすると移行したときの保守性がないので拡張子を省くようにしました。
また、Neovimのlanguage_server_windows_x64.exe
ですが、Windows版のLSPとして起動しているみたいです(Masonに対応するLSPが入ってないならnvim.exe
になりますが)。
もし、実行しているプロセス名ではなくターミナル名を表示したいなら、下のようにしてください。
else
-- title = tab
end
keybinds.lua
local wezterm = require("wezterm")
local config = {}
config.keys = require("config/keybinds_windows").keys
config.key_tables = require("config/keybinds_windows").key_tables
return config
キーボードのコンフィグを登録するファイルです。
require
の後にkeys
とkey_tables
があるのは、Weztermのキーコンフィグを出力するときにreturn
で出力されるためです。詳細は後で。
keybinds_windows.lua
keybinds_windows.lua
local act = require('wezterm').action
return {
keys = {
-- Test
-- [[ Windowsのキーバインド ]] --
-- 操作
{ key = 'PageUp', mods = 'NONE', action = act.ScrollByPage(-1) },
{ key = 'PageDown', mods = 'NONE', action = act.ScrollByPage(1) },
{ key = 'f', mods = 'CTRL|SHIFT', action = act.Search 'CurrentSelectionOrEmptyString' }, -- 文字の検索
{ key = 'F', mods = 'CTRL|SHIFT', action = act.Search 'CurrentSelectionOrEmptyString' },
{ key = 'p', mods = 'CTRL', action = act.ActivateCommandPalette }, -- コマンドパレットの表示
{ key = 'P', mods = 'CTRL', action = act.ActivateCommandPalette },
{ key = 'F4', mods = 'NONE', action = act.ActivateCommandPalette },
{ key = 'u', mods = 'CTRL|SHIFT', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } }, -- Unicode文字の選択
{ key = 'U', mods = 'CTRL|SHIFT', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
{ key = 'k', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' }, -- スクロールバックのクリア
{ key = 'K', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' },
{ key = 'l', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackAndViewport' }, -- スクロールバックのクリア
{ key = 'L', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackAndViewport' },
{ key = 'o', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode }, -- コピーモードの開始
{ key = 'O', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode },
-- ウィンドウ
{ key = 'n', mods = 'CTRL|SHIFT', action = act.SpawnWindow }, -- ウィンドウの追加
{ key = 'N', mods = 'CTRL|SHIFT', action = act.SpawnWindow },
{ key = '0', mods = 'CTRL', action = act.ResetFontSize }, -- 文字サイズリセット
{ key = ';', mods = 'CTRL', action = act.IncreaseFontSize }, -- 文字サイズ拡大
{ key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
{ key = '-', mods = 'CTRL', action = act.DecreaseFontSize }, -- 文字サイズ縮小
{ key = '=', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize },
-- ペイン
{ key = 'z', mods = 'SHIFT|ALT', action = act.TogglePaneZoomState }, -- アクティブペインの強調表示
{ key = 'Z', mods = 'SHIFT|ALT', action = act.TogglePaneZoomState },
{ key = 'c', mods = 'SHIFT|ALT', action = act.CloseCurrentPane { confirm = false } }, -- 現在のペインの削除
{ key = 'C', mods = 'SHIFT|ALT', action = act.CloseCurrentPane { confirm = false } },
{ key = 'd', mods = 'SHIFT|ALT', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } }, -- 右に新しいペインを追加
{ key = 'D', mods = 'SHIFT|ALT', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
{ key = 's', mods = 'SHIFT|ALT', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } }, -- 下に新しいペインを追加
{ key = 'S', mods = 'SHIFT|ALT', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
-- { key = 'r', mods = 'SHIFT|ALT', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } }, -- 下に小さな新しいペインを追加
-- { key = 'R', mods = 'SHIFT|ALT', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
{ key = 'LeftArrow', mods = 'SHIFT|ALT', action = act.AdjustPaneSize{ 'Left', 1 } }, -- ペインのサイズ調整
{ key = 'RightArrow', mods = 'SHIFT|ALT', action = act.AdjustPaneSize{ 'Right', 1 } },
{ key = 'UpArrow', mods = 'SHIFT|ALT', action = act.AdjustPaneSize{ 'Up', 1 } },
{ key = 'DownArrow', mods = 'SHIFT|ALT', action = act.AdjustPaneSize{ 'Down', 1 } },
{ key = 'UpArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' }, -- ペイン間のカーソル移動
{ key = 'DownArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' },
{ key = 'RightArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' },
{ key = 'LeftArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' },
-- タブ
{ key = 'T', mods = 'CTRL|SHIFT', action = act.SpawnTab 'CurrentPaneDomain' }, -- タブの追加
{ key = 'W', mods = 'CTRL|SHIFT', action = act.CloseCurrentTab{ confirm = false } }, -- タブの削除
{ key = '{', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(-1) }, -- タブの移動
{ key = '}', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(1) },
-- タブ切り替え
{ key = 'Tab', mods = 'CTRL', action = act.ActivateTabRelative(1) }, -- タブの切り替え
{ key = 'Tab', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(-1) },
{ key = '1', mods = 'CTRL', action = act.ActivateTab(0) }, -- タブの切り替え(数字)
{ key = '2', mods = 'CTRL', action = act.ActivateTab(1) },
{ key = '3', mods = 'CTRL', action = act.ActivateTab(2) },
{ key = '4', mods = 'CTRL', action = act.ActivateTab(3) },
{ key = '5', mods = 'CTRL', action = act.ActivateTab(4) },
{ key = '6', mods = 'CTRL', action = act.ActivateTab(5) },
{ key = '7', mods = 'CTRL', action = act.ActivateTab(6) },
{ key = '8', mods = 'CTRL', action = act.ActivateTab(7) },
{ key = '9', mods = 'CTRL', action = act.ActivateTab(-1) },
-- コピーペースト
--[[
{ key = 'C', mods = 'CTRL', action = act.CopyTo(Clipboard) }, -- コピー
{ key = 'V', mods = 'CTRL', action = act.PasteFrom(Clipboard) }, -- 貼り付け
--]]
{ key = 'phys:Space', mods = 'SHIFT|CTRL', action = act.QuickSelect }, -- クイックセレクトの開始
{ key = 'F5', mods = 'NONE', action = act.ReloadConfiguration }, -- Weztermの設定の再読み込み
{ key = 'F11', mods = 'NONE', action = act.ToggleFullScreen }, -- フルスクリーン化
{ key = 'F12', mods = 'NONE',action = act.ShowDebugOverlay }, -- デバッグ情報の表示
-- { key = 'Insert', mods = 'SHIFT', action = act.PasteFrom 'Clipboard' },
-- { key = 'Insert', mods = 'CTRL', action = act.CopyTo 'Clipboard' },
{ key = 'Copy', mods = 'NONE', action = act.CopyTo 'Clipboard' },
{ key = 'Paste', mods = 'NONE', action = act.PasteFrom 'Clipboard' },
},
key_tables = {
copy_mode = { -- コピーモード
-- 操作
{ key = 'Escape', mods = 'NONE', action = act.CopyMode 'Close' },
-- { key = 'phys:Space', mods = 'NONE', action = act.CopyMode{ SetSelectionMode = 'Cell' } },
-- 移動
{ key = 'Tab', mods = 'NONE', action = act.CopyMode 'MoveForwardWord' },
{ key = 'Tab', mods = 'SHIFT', action = act.CopyMode 'MoveBackwardWord' },
{ key = 'Enter', mods = 'NONE', action = act.CopyMode 'MoveToStartOfNextLine' },
{ key = 'Home', mods = 'NONE', action = act.CopyMode 'MoveToStartOfLine' },
{ key = 'End', mods = 'NONE', action = act.CopyMode 'MoveToEndOfLineContent' },
{ key = 'LeftArrow', mods = 'NONE', action = act.CopyMode 'MoveLeft' },
{ key = 'RightArrow', mods = 'NONE', action = act.CopyMode 'MoveRight' },
{ key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'MoveUp' },
{ key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'MoveDown' },
{ key = 'LeftArrow', mods = 'CTRL', action = act.CopyMode 'MoveBackwardWord' },
{ key = 'RightArrow', mods = 'CTRL', action = act.CopyMode 'MoveForwardWord' },
},
search_mode = { -- 検索モード
{ key = 'Enter', mods = 'NONE', action = act.CopyMode 'PriorMatch' },
{ key = 'Escape', mods = 'NONE', action = act.CopyMode 'Close' },
{ key = 'n', mods = 'CTRL', action = act.CopyMode 'NextMatch' },
{ key = 'p', mods = 'CTRL', action = act.CopyMode 'PriorMatch' },
{ key = 'r', mods = 'CTRL', action = act.CopyMode 'CycleMatchType' },
{ key = 'u', mods = 'CTRL', action = act.CopyMode 'ClearPattern' },
{ key = 'PageUp', mods = 'NONE', action = act.CopyMode 'PriorMatchPage' },
{ key = 'PageDown', mods = 'NONE', action = act.CopyMode 'NextMatchPage' },
{ key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'PriorMatch' },
{ key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'NextMatch' },
},
}
}
デフォルトからかなりキーコンフィグが変わっています。Windows terminalのデフォルトに合わせた形になっています。
ほんとうは開いているプロセスに合わせてコンフィグを変えたかったのですが、それはまたの機会に。
wezterm show-keys --lua > keybinds.lua
で出力したデフォルトのキーコンフィグはこちらに。
keybinds_windows.lua
local act = require('wezterm').action
return {
keys = {
{ key = 'Tab', mods = 'CTRL', action = act.ActivateTabRelative(1) },
{ key = 'Tab', mods = 'SHIFT|CTRL', action = act.ActivateTabRelative(-1) },
{ key = 'Enter', mods = 'ALT', action = act.ToggleFullScreen },
{ key = '!', mods = 'CTRL', action = act.ActivateTab(0) },
{ key = '!', mods = 'SHIFT|CTRL', action = act.ActivateTab(0) },
{ key = '\"', mods = 'ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
{ key = '\"', mods = 'SHIFT|ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
{ key = '#', mods = 'CTRL', action = act.ActivateTab(2) },
{ key = '#', mods = 'SHIFT|CTRL', action = act.ActivateTab(2) },
{ key = '$', mods = 'CTRL', action = act.ActivateTab(3) },
{ key = '$', mods = 'SHIFT|CTRL', action = act.ActivateTab(3) },
{ key = '%', mods = 'CTRL', action = act.ActivateTab(4) },
{ key = '%', mods = 'SHIFT|CTRL', action = act.ActivateTab(4) },
{ key = '%', mods = 'ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
{ key = '%', mods = 'SHIFT|ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
{ key = '&', mods = 'CTRL', action = act.ActivateTab(6) },
{ key = '&', mods = 'SHIFT|CTRL', action = act.ActivateTab(6) },
{ key = '\'', mods = 'SHIFT|ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
{ key = '(', mods = 'CTRL', action = act.ActivateTab(-1) },
{ key = '(', mods = 'SHIFT|CTRL', action = act.ActivateTab(-1) },
{ key = ')', mods = 'CTRL', action = act.ResetFontSize },
{ key = ')', mods = 'SHIFT|CTRL', action = act.ResetFontSize },
{ key = '*', mods = 'CTRL', action = act.ActivateTab(7) },
{ key = '*', mods = 'SHIFT|CTRL', action = act.ActivateTab(7) },
{ key = '+', mods = 'CTRL', action = act.IncreaseFontSize },
{ key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
{ key = '-', mods = 'CTRL', action = act.DecreaseFontSize },
{ key = '-', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize },
{ key = '-', mods = 'SUPER', action = act.DecreaseFontSize },
{ key = '0', mods = 'CTRL', action = act.ResetFontSize },
{ key = '0', mods = 'SHIFT|CTRL', action = act.ResetFontSize },
{ key = '0', mods = 'SUPER', action = act.ResetFontSize },
{ key = '1', mods = 'SHIFT|CTRL', action = act.ActivateTab(0) },
{ key = '1', mods = 'SUPER', action = act.ActivateTab(0) },
{ key = '2', mods = 'SHIFT|CTRL', action = act.ActivateTab(1) },
{ key = '2', mods = 'SUPER', action = act.ActivateTab(1) },
{ key = '3', mods = 'SHIFT|CTRL', action = act.ActivateTab(2) },
{ key = '3', mods = 'SUPER', action = act.ActivateTab(2) },
{ key = '4', mods = 'SHIFT|CTRL', action = act.ActivateTab(3) },
{ key = '4', mods = 'SUPER', action = act.ActivateTab(3) },
{ key = '5', mods = 'SHIFT|CTRL', action = act.ActivateTab(4) },
{ key = '5', mods = 'SHIFT|ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
{ key = '5', mods = 'SUPER', action = act.ActivateTab(4) },
{ key = '6', mods = 'SHIFT|CTRL', action = act.ActivateTab(5) },
{ key = '6', mods = 'SUPER', action = act.ActivateTab(5) },
{ key = '7', mods = 'SHIFT|CTRL', action = act.ActivateTab(6) },
{ key = '7', mods = 'SUPER', action = act.ActivateTab(6) },
{ key = '8', mods = 'SHIFT|CTRL', action = act.ActivateTab(7) },
{ key = '8', mods = 'SUPER', action = act.ActivateTab(7) },
{ key = '9', mods = 'SHIFT|CTRL', action = act.ActivateTab(-1) },
{ key = '9', mods = 'SUPER', action = act.ActivateTab(-1) },
{ key = '=', mods = 'CTRL', action = act.IncreaseFontSize },
{ key = '=', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
{ key = '=', mods = 'SUPER', action = act.IncreaseFontSize },
{ key = '@', mods = 'CTRL', action = act.ActivateTab(1) },
{ key = '@', mods = 'SHIFT|CTRL', action = act.ActivateTab(1) },
{ key = 'C', mods = 'CTRL', action = act.CopyTo 'Clipboard' },
{ key = 'F', mods = 'CTRL', action = act.Search 'CurrentSelectionOrEmptyString' },
{ key = 'K', mods = 'CTRL', action = act.ClearScrollback 'ScrollbackOnly' },
{ key = 'K', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' },
{ key = 'L', mods = 'CTRL', action = act.ShowDebugOverlay },
{ key = 'L', mods = 'SHIFT|CTRL', action = act.ShowDebugOverlay },
{ key = 'M', mods = 'CTRL', action = act.Hide },
{ key = 'M', mods = 'SHIFT|CTRL', action = act.Hide },
{ key = 'N', mods = 'CTRL', action = act.SpawnWindow },
{ key = 'N', mods = 'SHIFT|CTRL', action = act.SpawnWindow },
{ key = 'P', mods = 'CTRL', action = act.ActivateCommandPalette },
{ key = 'P', mods = 'SHIFT|CTRL', action = act.ActivateCommandPalette },
{ key = 'R', mods = 'CTRL', action = act.ReloadConfiguration },
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
{ key = 'T', mods = 'CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
{ key = 'T', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
{ key = 'U', mods = 'CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
{ key = 'U', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
{ key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard' },
{ key = 'V', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
{ key = 'W', mods = 'CTRL', action = act.CloseCurrentTab{ confirm = true } },
{ key = 'W', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = true } },
{ key = 'X', mods = 'CTRL', action = act.ActivateCopyMode },
{ key = 'Z', mods = 'CTRL', action = act.TogglePaneZoomState },
{ key = '[', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(-1) },
{ key = ']', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(1) },
{ key = '^', mods = 'CTRL', action = act.ActivateTab(5) },
{ key = '^', mods = 'SHIFT|CTRL', action = act.ActivateTab(5) },
{ key = '_', mods = 'CTRL', action = act.DecreaseFontSize },
{ key = '_', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize },
{ key = 'c', mods = 'SUPER', action = act.CopyTo 'Clipboard' },
{ key = 'f', mods = 'SUPER', action = act.Search 'CurrentSelectionOrEmptyString' },
{ key = 'k', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' },
{ key = 'k', mods = 'SUPER', action = act.ClearScrollback 'ScrollbackOnly' },
{ key = 'l', mods = 'SHIFT|CTRL', action = act.ShowDebugOverlay },
{ key = 'm', mods = 'SHIFT|CTRL', action = act.Hide },
{ key = 'm', mods = 'SUPER', action = act.Hide },
{ key = 'n', mods = 'SHIFT|CTRL', action = act.SpawnWindow },
{ key = 'n', mods = 'SUPER', action = act.SpawnWindow },
{ key = 'p', mods = 'SHIFT|CTRL', action = act.ActivateCommandPalette },
{ key = 'r', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
{ key = 'r', mods = 'SUPER', action = act.ReloadConfiguration },
{ key = 't', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
{ key = 't', mods = 'SUPER', action = act.SpawnTab 'CurrentPaneDomain' },
{ key = 'u', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
{ key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
{ key = 'v', mods = 'SUPER', action = act.PasteFrom 'Clipboard' },
{ key = 'w', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = true } },
{ key = 'w', mods = 'SUPER', action = act.CloseCurrentTab{ confirm = true } },
{ key = '{', mods = 'SUPER', action = act.ActivateTabRelative(-1) },
{ key = '{', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(-1) },
{ key = '}', mods = 'SUPER', action = act.ActivateTabRelative(1) },
{ key = '}', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(1) },
{ key = 'phys:Space', mods = 'SHIFT|CTRL', action = act.QuickSelect },
{ key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-1) },
{ key = 'PageUp', mods = 'CTRL', action = act.ActivateTabRelative(-1) },
{ key = 'PageUp', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(-1) },
{ key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(1) },
{ key = 'PageDown', mods = 'CTRL', action = act.ActivateTabRelative(1) },
{ key = 'PageDown', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(1) },
{ key = 'LeftArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' },
{ key = 'LeftArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Left', 1 } },
{ key = 'RightArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' },
{ key = 'RightArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Right', 1 } },
{ key = 'UpArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' },
{ key = 'UpArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Up', 1 } },
{ key = 'DownArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' },
{ key = 'DownArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Down', 1 } },
{ key = 'Insert', mods = 'SHIFT', action = act.PasteFrom 'PrimarySelection' },
{ key = 'Insert', mods = 'CTRL', action = act.CopyTo 'PrimarySelection' },
{ key = 'F12', mods = 'NONE', action = act.ShowDebugOverlay },
{ key = 'Copy', mods = 'NONE', action = act.CopyTo 'Clipboard' },
{ key = 'Paste', mods = 'NONE', action = act.PasteFrom 'Clipboard' },
},
key_tables = {
copy_mode = {
{ key = 'Tab', mods = 'NONE', action = act.CopyMode 'MoveForwardWord' },
{
key = 'Tab',
mods = 'SHIFT',
action = act.CopyMode 'MoveBackwardWord',
},
{
key = 'Enter',
mods = 'NONE',
action = act.CopyMode 'MoveToStartOfNextLine',
},
{
key = 'Escape',
mods = 'NONE',
action = act.Multiple {
{ CopyMode = 'ScrollToBottom' },
{ CopyMode = 'Close' },
},
},
{
key = 'Space',
mods = 'NONE',
action = act.CopyMode { SetSelectionMode = 'Cell' },
},
{
key = '$',
mods = 'NONE',
action = act.CopyMode 'MoveToEndOfLineContent',
},
{
key = '$',
mods = 'SHIFT',
action = act.CopyMode 'MoveToEndOfLineContent',
},
{ key = ',', mods = 'NONE', action = act.CopyMode 'JumpReverse' },
{ key = '0', mods = 'NONE', action = act.CopyMode 'MoveToStartOfLine' },
{ key = ';', mods = 'NONE', action = act.CopyMode 'JumpAgain' },
{
key = 'F',
mods = 'NONE',
action = act.CopyMode { JumpBackward = { prev_char = false } },
},
{
key = 'F',
mods = 'SHIFT',
action = act.CopyMode { JumpBackward = { prev_char = false } },
},
{
key = 'G',
mods = 'NONE',
action = act.CopyMode 'MoveToScrollbackBottom',
},
{
key = 'G',
mods = 'SHIFT',
action = act.CopyMode 'MoveToScrollbackBottom',
},
{ key = 'H', mods = 'NONE', action = act.CopyMode 'MoveToViewportTop' },
{
key = 'H',
mods = 'SHIFT',
action = act.CopyMode 'MoveToViewportTop',
},
{
key = 'L',
mods = 'NONE',
action = act.CopyMode 'MoveToViewportBottom',
},
{
key = 'L',
mods = 'SHIFT',
action = act.CopyMode 'MoveToViewportBottom',
},
{
key = 'M',
mods = 'NONE',
action = act.CopyMode 'MoveToViewportMiddle',
},
{
key = 'M',
mods = 'SHIFT',
action = act.CopyMode 'MoveToViewportMiddle',
},
{
key = 'O',
mods = 'NONE',
action = act.CopyMode 'MoveToSelectionOtherEndHoriz',
},
{
key = 'O',
mods = 'SHIFT',
action = act.CopyMode 'MoveToSelectionOtherEndHoriz',
},
{
key = 'T',
mods = 'NONE',
action = act.CopyMode { JumpBackward = { prev_char = true } },
},
{
key = 'T',
mods = 'SHIFT',
action = act.CopyMode { JumpBackward = { prev_char = true } },
},
{
key = 'V',
mods = 'NONE',
action = act.CopyMode { SetSelectionMode = 'Line' },
},
{
key = 'V',
mods = 'SHIFT',
action = act.CopyMode { SetSelectionMode = 'Line' },
},
{
key = '^',
mods = 'NONE',
action = act.CopyMode 'MoveToStartOfLineContent',
},
{
key = '^',
mods = 'SHIFT',
action = act.CopyMode 'MoveToStartOfLineContent',
},
{ key = 'b', mods = 'NONE', action = act.CopyMode 'MoveBackwardWord' },
{ key = 'b', mods = 'ALT', action = act.CopyMode 'MoveBackwardWord' },
{ key = 'b', mods = 'CTRL', action = act.CopyMode 'PageUp' },
{
key = 'c',
mods = 'CTRL',
action = act.Multiple {
{ CopyMode = 'ScrollToBottom' },
{ CopyMode = 'Close' },
},
},
{
key = 'd',
mods = 'CTRL',
action = act.CopyMode { MoveByPage = 0.5 },
},
{
key = 'e',
mods = 'NONE',
action = act.CopyMode 'MoveForwardWordEnd',
},
{
key = 'f',
mods = 'NONE',
action = act.CopyMode { JumpForward = { prev_char = false } },
},
{ key = 'f', mods = 'ALT', action = act.CopyMode 'MoveForwardWord' },
{ key = 'f', mods = 'CTRL', action = act.CopyMode 'PageDown' },
{
key = 'g',
mods = 'NONE',
action = act.CopyMode 'MoveToScrollbackTop',
},
{
key = 'g',
mods = 'CTRL',
action = act.Multiple {
{ CopyMode = 'ScrollToBottom' },
{ CopyMode = 'Close' },
},
},
{ key = 'h', mods = 'NONE', action = act.CopyMode 'MoveLeft' },
{ key = 'j', mods = 'NONE', action = act.CopyMode 'MoveDown' },
{ key = 'k', mods = 'NONE', action = act.CopyMode 'MoveUp' },
{ key = 'l', mods = 'NONE', action = act.CopyMode 'MoveRight' },
{
key = 'm',
mods = 'ALT',
action = act.CopyMode 'MoveToStartOfLineContent',
},
{
key = 'o',
mods = 'NONE',
action = act.CopyMode 'MoveToSelectionOtherEnd',
},
{
key = 'q',
mods = 'NONE',
action = act.Multiple {
{ CopyMode = 'ScrollToBottom' },
{ CopyMode = 'Close' },
},
},
{
key = 't',
mods = 'NONE',
action = act.CopyMode { JumpForward = { prev_char = true } },
},
{
key = 'u',
mods = 'CTRL',
action = act.CopyMode { MoveByPage = -0.5 },
},
{
key = 'v',
mods = 'NONE',
action = act.CopyMode { SetSelectionMode = 'Cell' },
},
{
key = 'v',
mods = 'CTRL',
action = act.CopyMode { SetSelectionMode = 'Block' },
},
{ key = 'w', mods = 'NONE', action = act.CopyMode 'MoveForwardWord' },
{
key = 'y',
mods = 'NONE',
action = act.Multiple {
{ CopyTo = 'ClipboardAndPrimarySelection' },
{ CopyMode = 'ScrollToBottom' },
{ CopyMode = 'Close' },
},
},
{ key = 'PageUp', mods = 'NONE', action = act.CopyMode 'PageUp' },
{ key = 'PageDown', mods = 'NONE', action = act.CopyMode 'PageDown' },
{
key = 'End',
mods = 'NONE',
action = act.CopyMode 'MoveToEndOfLineContent',
},
{
key = 'Home',
mods = 'NONE',
action = act.CopyMode 'MoveToStartOfLine',
},
{ key = 'LeftArrow', mods = 'NONE', action = act.CopyMode 'MoveLeft' },
{
key = 'LeftArrow',
mods = 'ALT',
action = act.CopyMode 'MoveBackwardWord',
},
{
key = 'RightArrow',
mods = 'NONE',
action = act.CopyMode 'MoveRight',
},
{
key = 'RightArrow',
mods = 'ALT',
action = act.CopyMode 'MoveForwardWord',
},
{ key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'MoveUp' },
{ key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'MoveDown' },
},
search_mode = {
{ key = 'Enter', mods = 'NONE', action = act.CopyMode 'PriorMatch' },
{ key = 'Escape', mods = 'NONE', action = act.CopyMode 'Close' },
{ key = 'n', mods = 'CTRL', action = act.CopyMode 'NextMatch' },
{ key = 'p', mods = 'CTRL', action = act.CopyMode 'PriorMatch' },
{ key = 'r', mods = 'CTRL', action = act.CopyMode 'CycleMatchType' },
{ key = 'u', mods = 'CTRL', action = act.CopyMode 'ClearPattern' },
{ key = 'PageUp', mods = 'NONE', action = act.CopyMode 'PriorMatchPage' },
{ key = 'PageDown', mods = 'NONE', action = act.CopyMode 'NextMatchPage' },
{ key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'PriorMatch' },
{ key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'NextMatch' },
},
}
}
mousebinds.lua
local act = require('wezterm').action
return {
mouse_bindings = {
{ -- 右クリックでペースト
event = { Down = { streak = 1, button = "Right" } },
mods = "NONE",action = act.PasteFrom("Clipboard"),
},
},
}
Powershell 7に合わせる形にしました。
この設定を通すときはconfig.mouse_bindings = require("config/mousebinds").mouse_bindings
と打ってください。
この設定を組み合わせる。
local wezterm = require("wezterm")
local config = wezterm.config_builder()
local function merge_config(file)
for k, v in pairs(require(file)) do
config[k] = v
end
end
if wezterm.target_triple == "x86_64-pc-windows-msvc" then
config.default_prog = { "pwsh.exe" }
elseif wezterm.target_triple == "aarch64-apple-darwin" then
config.default_prog = { "zsh.out" }
elseif wezterm.target_triple == "x86_64-unknown-linux-gnu" then
config.default_prog = { "bash" }
end
config.mouse_bindings = require("config/mousebinds").mouse_bindings
merge_config("config/general")
merge_config("config/colorscheme")
merge_config("config/frame")
merge_config("config/font")
merge_config("config/tabbar")
merge_config("config/keybinds")
-- merge_config("config/DEBUGLINE")
return config
Githubを見てるとutilsのpratplatform.luaとして分離している例が多いですが、こちらは適当にやっています。細かくやりたくなったら調整はします。
if wezterm.target_triple == "x86_64-pc-windows-msvc" then
config.default_prog = { "pwsh.exe" }
elseif wezterm.target_triple == "aarch64-apple-darwin" then
config.default_prog = { "zsh" }
elseif wezterm.target_triple == "x86_64-unknown-linux-gnu" then
config.default_prog = { "bash" }
end
最後に
ここまで読んでいただきありがとうございます。
今回はWeztermの設定を分離して管理がしやすくなる方法とコンフィグの設定を説明しました。
もしWeztermのコンフィグ設定を探している場合、この記事に限らずGitHubでweztermと検索してdotfileなど調べるといいでしょう。
他参考
Discussion