2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Weztermの設定ファイルを分ける方法

Posted at

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の設定ファイル

私が作成した設定ファイルは下にあります。
ぜひ参考にしてください。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?