Skip to content

配置

文档编写中

部分内容可能尚不完整。

ThinkTerm 用一个 Lua 文件配置,方式与 WezTerm 相同。配置项名称、模块名和语法都没有改动 —— ThinkTerm 的配置文件开头依然是:

lua
local wezterm = require 'wezterm'

不同的只是文件从哪里读、数据往哪里写。

配置文件的读取顺序

ThinkTerm 会加载它找到的第一个文件,顺序如下:

  1. $THINKTERM_CONFIG_FILE
  2. $WEZTERM_CONFIG_FILE
  3. 可执行文件同目录下的 thinkterm.lua —— 仅 Windows
  4. 可执行文件同目录下的 wezterm.lua —— 仅 Windows
  5. ~/.config/thinkterm/thinkterm.lua
  6. ~/.config/thinkterm/wezterm.lua
  7. ~/.thinkterm.lua

$THINKTERM_CONFIG_DIR$WEZTERM_CONFIG_DIR 不参与这个搜索。它们是 ThinkTerm 在配置加载完成之后写出的 —— 指向配置文件所在的目录,供你启动的程序读取。自己设置它们并不能选中某份配置。

那两条仅限 Windows 的规则是有意为之:配置文件放在可执行文件旁边时优先级最高,这样 ThinkTerm 可以装在 U 盘里带走,在一台没有自己配置、或者装着别人配置的机器上运行。

其中的 wezterm.lua 文件名也不是遗留物:它让一份现成的 WezTerm 配置可以直接放进 ThinkTerm 的目录,不必改名。

ThinkTerm 会从 WezTerm 安装里取用什么

你的 WezTerm 配置文件不会被加载。上面所有位置都不指向 ~/.config/wezterm/wezterm.lua,ThinkTerm 也从不写入它。

但这个隔离并不彻底,有两条通路值得知道。

WEZTERM_CONFIG_FILE 会被遵循。 它排在上面的搜索顺序里,所以如果你的环境里导出了这个变量(如果你当初就是这样配置 WezTerm 的,很可能就是如此),ThinkTerm 会加载它指向的文件。设置 THINKTERM_CONFIG_FILE,或者取消那个 WezTerm 的变量,就能让两套安装互不干扰。

WezTerm 的配置目录仍会被搜索 Lua 模块和配色方案。 ~/.config/wezterm/~/.wezterm/ 位于 Lua 的 package.path 上,~/.config/wezterm/colors/ 也会被搜索配色方案。所以在 ThinkTerm 配置里写 require 'mymodule',会找到你为 WezTerm 写的模块。被隔离的是配置文件本身,不是整个目录。

从 WezTerm 导入

设置从 WezTerm 导入 会读取一份现有的 WezTerm 配置,并把你勾选的字段复制进 ThinkTerm 自己的文件。这是一次性复制 —— 复制完成后两个文件相互独立,不会共享任何实时状态。

可导入的字段共十五个:

color_schemewindow_background_opacitymacos_window_background_blurinactive_pane_hsbfontfont_sizeline_heightcell_widthdefault_progdefault_cwdfront_endwindow_decorationsdisable_default_key_bindingskeyskey_tables

这个列表限定的是导入器替你复制的范围,不是 ThinkTerm 支持的范围。其他任何 WezTerm 配置项,手写进 ThinkTerm 的配置文件里同样有效。

数据存放位置

macOS

  • 配置文件 —— ~/.config/thinkterm/
  • 工作区数据 —— ~/Library/Application Support/ThinkTerm/
  • 终端状态 —— ~/Library/Application Support/thinkterm/
  • 缓存 —— ~/Library/Caches/thinkterm/

Linux

  • 配置文件 —— ~/.config/thinkterm/
  • 工作区数据 —— ~/.local/share/ThinkTerm/
  • 终端状态 —— ~/.local/share/thinkterm/
  • 缓存 —— ~/.cache/thinkterm/

Windows

  • 配置文件 —— %USERPROFILE%\.config\thinkterm\
  • 工作区数据 —— %APPDATA%\ThinkTerm\
  • 终端状态 —— %APPDATA%\thinkterm\
  • 缓存 —— %LOCALAPPDATA%\thinkterm\

上面有两点容易踩坑。

配置路径不遵循各平台惯例。 所有操作系统上都使用 ~/.config/thinkterm/,Windows 也不例外 —— 不是 %APPDATA%。因此配置与数据在每个平台上都是分开存放的,Linux 也一样 —— 那里配置在 ~/.config 下,数据在 ~/.local/share 下。

有两个仅大小写不同的数据目录。 工作区数据 —— Space、Project 与 Thread 结构,SSH 主机簿,片段,以及加密密钥 —— 写在 ThinkTerm/。终端与多路复用状态写在 thinkterm/。macOS 和 Windows 的文件系统默认对大小写不敏感,两者通常会合并成同一个目录 —— 但在大小写敏感的 APFS 卷上不会。在 Linux 上它们始终是独立的两个目录。无论落在哪里,两者都属于 ThinkTerm。

笔记库不存放在上述任何一处。它是你自己选定的目录,里面是普通的 Markdown 文件;ThinkTerm 只记录这个绑定关系。

配置项参考

绝大多数配置项都原样来自 WezTerm,因此参考文档在上游:

两点提醒。ThinkTerm 于 2026 年 3 月 31 日从 WezTerm 分叉,此后上游新增的配置项这里可能尚未提供。另外 ThinkTerm 有自己新增的配置项,上游文档里查不到:

配置项控制什么
agent_status_detection是否运行会话状态检测
note_spellcheck_enabledMarkdown 编辑器中的拼写检查
note_remote_images_enabled笔记中是否加载远程 URL 图片
note_reading_max_width笔记的阅读宽度
right_sidebar_search_respects_gitignore文件搜索是否跳过被忽略的文件