WezTerm:Windows 终端与跨平台配置

本页目录

WezTerm 使用 Lua 配置终端,能够创建标签和面板,也具有多路复用能力。Windows 场景中,它可以启动 PowerShell 或 WSL;这些程序的文件系统、环境变量和可执行文件仍然属于各自环境。

跨平台配置的价值是共享字体、配色和交互习惯。Shell 路径、字体是否安装、图形后端和显示缩放仍需按机器确认。

一份有完整上下文的配置

将下面内容保存为用户目录下的 .wezterm.lua。示例要求字体已安装;Windows 分支要求 pwsh.exe 可在 PATH 中找到。

local wezterm = require("wezterm")
local config = wezterm.config_builder()

config.font = wezterm.font("JetBrains Mono")
config.font_size = 12.0
config.color_scheme = "Builtin Solarized Dark"

if wezterm.target_triple:find("windows") then
  config.default_prog = { "pwsh.exe", "-NoLogo" }
end

return config

require 取得 WezTerm API,config_builder() 创建配置对象,文件末尾返回该对象。只复制几行 config.xxx 而没有这些上下文,会得到未定义变量或配置未返回的问题。

先在已有 PowerShell 中确认:

Get-Command pwsh

找不到时,安装 PowerShell 7 或将启动程序改为系统已有的 Shell。powershell.exe 与 pwsh.exe 是不同程序,其版本和编码行为也可能不同。

标签、面板与 WSL

标签用于组织工作区,面板用于并排观察任务。一个常见布局是左边编辑器,右边测试或日志。先使用 WezTerm 的默认动作完成新建、切换和关闭,再决定是否需要自定义键位。默认快捷键

需要进入 WSL 时,先在 Windows 中列出发行版:

wsl --list --verbose

再用实际名称启动,例如:

wsl -d Ubuntu

Ubuntu 是示例名称。进入后运行 pwd,确认当前使用的是 Linux 路径。Windows 的 C:\Users\... 与 WSL 的 /home/... 不应直接互换;编辑器、编译器和依赖也应尽量在项目所在环境中运行。

渲染设置按问题调整

WezTerm 支持不同渲染后端。下面是选择 WebGPU 的独立选项,加入现有配置对象即可:

config.front_end = "WebGpu"
config.max_fps = 144

这两行不是所有机器都必须使用的优化。GPU 驱动、远程桌面和显示器刷新率会影响结果;遇到黑屏、闪烁或额外功耗时,先移除这些覆盖项,回到默认后端比较。front_end 参数

字体大小使用点值,显示缩放会影响最终像素尺寸。跨 Windows 与 Linux 同步 font_size 后,仍需观察实际字宽和行高。

配置生效与恢复

WezTerm 通常会检测配置变更,但新建窗口或新进程才会使用部分启动设置。可先执行下面的只读查询,检查配置能否加载并列出键位:

wezterm show-keys

若解析失败,按错误中的文件和行号检查。先修 Lua 语法、require 与返回值,再查字体、Shell 路径和后端。配置无法正常启动时,可从另一个终端还原 .wezterm.lua 的备份。

是否再叠加 Zellij

只需要本地分屏与标签时,WezTerm 自带能力已经足够。需要在远端保存独立会话时,可以在 SSH 远端运行 Zellij;也可以进一步了解 WezTerm 的 mux server 与 domain,但需要单独配置其运行位置和连接方式。

普通本地窗口、SSH 连接和独立 mux server 的进程寿命不同。不能仅因“终端支持多路复用”就假定关闭任何窗口都不会结束任务。用一个无害的长运行命令实际验证断开、接回及退出的行为,再让它承载重要工作。

配置稳定后,将手工编写的 .wezterm.lua 交给 chezmoi,并通过平台分支表达差异。