weztermの設定をwezterm.lua
に全部書いていたのですが、流石に見づらいので変更しようと思います。
weztermのいじり方
weztermのいじり方はこの記事で紹介しています。
設定ファイルの分け方。
下のようなディレクトリで分けようと思います。
zsh
.
├── colors
│ └── custom.lua
└── wezterm.lua
色の設定をcolorsディレクトリにcustom.lua
を作成してそこにカラースキーマ等を記述したとしようと思います。
下のようにcustom.lua
を作成します。
custom.lua
local config = {}
local custom = {
-- カラー設定
purple = '#9c7af2',
blue = '#6EADD8',
light_green = "#7dcd5d",
orange = "#e19500",
red = "#E50000",
yellow = "#D7650C",
}
-- カラー設定
config.colors = {
foreground = 'silver',
selection_fg = 'red',
cursor_bg = custom.blue,
cursor_fg = "white",
cursor_border = custom.purple,
tab_bar = {
inactive_tab_edge = "none",
},
ansi = {
'black', -- 0: Black
custom.red, -- 1: Custom Red
custom.purple, -- 2: Custom Purple
custom.light_green, -- 3: Custom Light Green
custom.blue, -- 4: Custom Blue
custom.yellow, -- 5: Custom Yellow
'teal', -- 6: Custom Cyan
'silver', -- 7: Custom White
},
brights = {
'grey', -- 8: Custom Bright Black
'red', -- 9: Bright Red
'lime', -- 10: Custom Bright Green
'yellow', -- 11: Bright Yellow
'blue', -- 12: Bright Blue
'fuchsia', -- 13: Custom Bright Magenta
'aqua', -- 14: Custom Bright Cyan
'white', -- 15: Bright White
},
}
return config
空のテーブルを作成してそれを返すようにします。
次にwezterm.lua
を以下のようにします。
wezterm.lua
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 colors = require("colors/custom")
merge_config(config, colors)
return config
config_builder()
部分は、設定することができるkeyがあるかどうかをバリデーションしてくれる特殊なユーザーデータ型を返していて、configはテーブル構造になっています。
lua
local config = wezterm.config_builder()
設定ファイルごとに返していたテーブルに設定されたキーから、config_builder()
で作成されたテーブルのキーに対して上書きするようなメソッドを下のように作成します。
lua
function merge_config(config, new_config)
for k, v in pairs(new_config) do
config[k] = v
end
end
require
をつかって、ディレクトリとファイルの名前を指定することで返したテーブルを変数に代入することができます。
lua
local colors = require("colors/custom")
これを先ほど作った関数に入れることで、設定を上書きすることができます。
lua
merge_config(config, colors)
weztermの設定ファイル
私が作成した設定ファイルは下にあります。
ぜひ参考にしてください。