5 段 Lua 配置指南:WezTerm 终端定制与外观快速上手
2026/9/4 23:17:08 网站建设 项目流程

5 段 Lua 配置指南:WezTerm 终端定制与外观快速上手

【免费下载链接】weztermA GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust项目地址: https://gitcode.com/GitHub_Trending/we/wezterm

WezTerm 终端定制其实只改一个 Lua 文件。这篇 WezTerm 终端美化配置指南带你完成 4 件事:换配色、修 emoji 回退字体、加渐变背景、让主题跟随系统深浅模式,每段配置都在 12 行以内。

WezTerm 是一个用 Rust 写的跨平台 GPU 加速终端模拟器,所有外观都通过wezterm.lua用 Lua 控制。下文按时间轴分三档:想先看到效果看第一节;想长期打磨看第二节;日常维护看第三节。按需跳转即可,不必线性读完。

5 分钟换掉默认配色

3 行配置应用一套预设主题

改完保存,重启 WezTerm(或按Ctrl-Shift-R),所有标签页的文字和背景色立刻换成新主题。配色名可以直接从仓库内置的 色彩方案数据 里挑,名字和文件名一一对应:

local wezterm = require 'wezterm' local config = wezterm.config_builder() -- 内置方案任选其一,比如 Tokyo Night Storm、Dracula、Nord config.color_scheme = 'Tokyo Night Storm' return config

color_scheme是整套终端外观的开关:前景、背景、光标、16 色 ANSI 一次全换,不用自己逐个调。

让字符、emoji、符号都有字体可回退

一行字体回退链解决 emoji 显示为方块

主字体里没有的字符(emoji、箭头、Nerd Font 图标)会按顺序去后面的字体里找,找不到才画成方块。顺序就是优先级:

config.font = wezterm.font_with_fallback({ 'JetBrains Mono', -- 主字体 'Noto Color Emoji', -- 彩色 emoji 回退 'Fira Code', -- 符号再补一层 })

不确定系统里装了哪些字体名?跑一次wezterm ls-fonts,输出的名字可以直接填进这个数组。

字号与连字微调

config.font_size = 14.0 -- Ctrl+滚轮可临时缩放,改完窗口尺寸保持不变 config.adjust_window_size_when_changing_font_size = true -- 开启连字,让 -> 这类符号渲染成单字符 config.harfbuzz_features = { 'calt=1', 'clig=1', 'liga=1' }

三个开关都是可逆的:字号不满意直接调数字,连字不喜欢把calt改成calt=0即可。

让终端背景与桌面融为一体

一段渐变配置替换纯色背景

config.window_background_gradient = { orientation = 'Vertical', -- 方向可选 Horizontal / Vertical / Radial colors = { '#16161e', '#1a1b26', '#1f2335' }, }

colors是 2 到 5 个颜色点,从上到下(或按 Radial 从中心向外)线性过渡。效果参考下面这张仓库截图,渐变是铺在文字背后的底层:

透明度与 Wayland 模糊

把窗口整体调透一点,桌面壁纸会从字符间隙透出来:

config.window_background_opacity = 0.85 -- 0.0~1.0,需要合成窗口管理器

在 KDE Wayland 下可以再把窗口背后真正模糊掉:

config.wayland_window_background_blur = true

注意模糊作用于窗口背后的桌面,不影响终端自身内容;X11 下只有opacity生效。

深浅模式自动切换配色

用系统外观模式选主题

系统切到深色模式时终端换深色主题,切回浅色再换回来,不用手动改文件:

wezterm.on('window-config-reloaded', function(window) local appearance = wezterm.gui.get_appearance() local scheme = 'One Dark' if appearance:find('Light') then scheme = 'Solarized Light' end -- 按当前外观覆盖本窗口的配色 window:set_config_overrides({ color_scheme = scheme }) end)

get_appearance()返回的是系统报告的明暗状态字符串,set_config_overrides只覆盖当前窗口的指定字段,其余配置仍走全局wezterm.lua。API 细节可查仓库内的 Lua 配置文档,参数名以那里为准。

想自己调色时:手动覆盖一套颜色

预设方案不满意某个色时,不要整段重写colors,只覆盖要改的字段即可,其余字段仍继承方案:

config.color_scheme = 'Tokyo Night Storm' config.colors = { cursor_bg = '#7aa2f7', -- 光标背景改亮一点 selection_bg = '#bb9af7', }

colors里每个字段都可单独写:foregroundbackgroundansi(8 色)、brights(8 色)。改完立刻生效,方便反复试。

主题轮换:每次开一个新窗口换一套

math.random从候选列表里随机取一套,每次开新窗口就换一套配色,不用改文件:

local themes = { 'Nord', 'Dracula', 'Catppuccin Mocha' } wezterm.on('window-config-reloaded', function(window) window:set_config_overrides({ color_scheme = themes[math.random(#themes)], }) end)

想固定某套时把随机那行写死即可,这个 hook 和深浅模式切换可以共用,但注意同一个 hook 里后写的覆盖会生效。

日常维护:扩展目录与快速验证

自定义主题放进扩展目录

把第三方.toml主题文件放到指定目录,文件名就是方案名,全局color_scheme直接引用:

config.color_scheme_dirs = { '~/.config/wezterm/themes' }

目录不存在时先自己建一个;放进去的文件不需要额外注册。

改完没生效怎么办

先跑wezterm --help确认用的是哪个配置文件(默认是~/.config/wezterm/wezterm.lua),再按Ctrl-Shift-R触发重载;Linux 部分环境可以直接杀掉前台进程重启。字体名拼错不会报错,只会走回退链,所以显示效果不对时先用wezterm ls-fonts核对名字。

下一步你可以试试

  • 从 色彩方案数据 里挑 3 套方案,用color_scheme逐一试一遍,选定主力
  • 字体回退链加第三层:装上 Nerd Font 后把符号字体补进去
  • config.text_min_contrast_ratio = 4.5,低对比度字符会被自动提亮
  • 深浅模式 hook 和主题轮换合到同一个window-config-reloaded里,跑一周看顺不顺手

【免费下载链接】weztermA GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust项目地址: https://gitcode.com/GitHub_Trending/we/wezterm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询