WezTerm 折腾记录

WezTerm

最近把终端模拟器从 Kitty 换成了 WezTerm,主要是因为 WezTerm 有随系统自动切换深色主题的能力。作为一个白天用亮色主题晚上用暗色主题的人,终端主题的切换一直是一大痛点(虽说可以通过一个简单的脚本手动切换,但还是有点麻烦,不够优雅),看到 WezTerm 有这个能力之后果断换成了 WezTerm。

主题随系统自动切换 #

tokyonight_stormtokyonight_day是两个 table,其中包含colorswindow_frame。注意window:set_config_overrides()也会再次触发window-config-reloaded事件,所以一定要在当前主题需要改变的时候才调用window:set_config_overrides,不然会死循环。

local function get_color()
    local appearance = wezterm.gui.get_appearance()
    if appearance:find 'Dark' then
        return tokyonight_storm
    else
        return tokyonight_day
    end
end
 
wezterm.on('window-config-reloaded', function (window, pane)
    local overrides = window:get_config_overrides() or {}
    local target = get_color()
    if overrides.colors ~= target.colors then
        overrides.colors = target.colors
        overrides.window_frame = target.window_frame
        window:set_config_overrides(overrides)
    end
end)

正常渲染 Neovim 中的波浪线 #

详见官方文档中的F.A.Q.

tempfile=$(mktemp) \
  && curl -o $tempfile https://raw.githubusercontent.com/wez/wezterm/master/termwiz/data/wezterm.terminfo \
  && tic -x -o ~/.terminfo $tempfile \
  && rm $tempfile

然后设置环境变量TERM=wezterm