窗口
文档编写中
部分内容可能尚不完整。
窗口分三块:左边是承载工作区的侧边栏,中间是终端区域,右边是可选的面板。终端本身来自 WezTerm,渲染、字体和转义序列由它的文档原样覆盖。下面讲的是它周围的那一圈。
侧边栏
侧边栏装着工作区:当前显示的 Space、它的 Project,以及每个 Project 里的 Thread。这套模型和其中的每个菜单见 Space、Project 与 Thread;这里只讲布局。
最上方有一个按钮,写着当前 Space 的名字,点开是 Space 菜单。菜单先列出本机的 Space,再按远程服务端分组列出各自的 Space,组名是服务端名字和连接状态,每组都带一个 在此服务器新建空间。已经在另一个窗口里打开的 Space 会标为已被占用,选不了,因为一个 Space 同一时间只在一个窗口里显示。同一个菜单里还有 添加远程主机…、新建空间、重命名当前 Space,以及移除它或另一个 Space。设置 › 外观 › 连上的服务器 可以改变它列出服务器的方式:把每台服务器的 Space 全部展开(全部展开,默认)、每台服务器只占一行(每台一行),或者把服务器作为文件夹放进本机的某个 Space 里(文件夹),这样菜单里只列你自己的。每种方式的细节见 Space 菜单里的服务器。在 远程主机 里给主机的 图标 栏选的图标,会在这个菜单里标出它的服务器。
在 macOS 上,右键点程序坞里的 ThinkTerm 图标,会在 New Window 之下按字母顺序列出窗口里已打开的 Space,正在使用的那个打勾。选一个,就把它的窗口带到前面。
下面是这个 Space 的 Project,各自带着自己的 Thread。置顶的 Thread 会离开所属 Project 的列表,进入 Space 顶部唯一的 已置顶 区,这个区汇集了 Space 里所有 Project 的置顶。置顶的 Thread 不能拖动排序;已归档 Project 的置顶在它取消归档之前不会出现在这个区里。Thread 也可以标记为未读。
每个 Thread 带着一个实时状态,所以这份列表本身就回答了「哪些会话在干活、哪些在等你」,不必逐个点开 —— 这个状态是怎么判定的,见 Agent 状态。Thread 的名字旁边还显示它的 pane 正在运行的程序,用的是和 pane 标签一样的图标;怎么排列、状态怎么画,见 侧边栏里的图标与状态。
窗口正在显示的那个 Thread 在列表里看不见时,也就是被滚出了视野或折叠进了它的 Project,列表的上边缘或下边缘会浮出一个药丸形按钮(滚到当前会话),上面是那个 Thread 的图标和指向它的箭头。点它会在需要时展开文件夹,并把列表滚回那个 Thread。
把指针停在 Thread 的行上,会打开一张卡片,数出它有几个 agent,并逐个列出各自的状态。每个 agent 标题行的末尾,按命令行的叫法写出它所在的 pane,形如 窗格 3;别的机器上的 pane,编号前面带着那台机器的名字,形如 窗格 devbox/3。状态 面板里 agent 的悬停卡片还多一行 窗格,写着同一个名字,pane 有标签的话接在后面。这就是 命令行 里 --pane 接受的编号。
侧边栏默认宽 31 个字符格。底部有四个按钮:Library、实时总览、远程主机 和 查找线程。设置不再放在底部:它是 Library 左边缘的那个圆形按钮,设置… 也在命令面板里,在 macOS 上还可以按 ⌘,。
侧边栏里的添加按钮,比如 工作区 旁边的 + 和 Project 行上的 +,只在指针停在上面时才画出圆形底。设置 › 辅助功能 › 显示按钮形状 默认关闭,打开后它一直画着。
在 macOS 上按住 ⌘,其他系统按住 Ctrl+Shift,半秒之后,侧边栏从上往下数的前九个 Thread 会各显示一个数字,也就是到达它的那个键。macOS 上 ⌘1 到 ⌘9,其他系统上 Ctrl+Shift+1 到 9,打开对应的 Thread。置顶的 Thread 先数,折叠起来的 Project 里的 Thread 不数。这个组合键是从快捷键表里读出来的,所以在 设置 › 快捷键 里改了,按住的键和显示的内容都会跟着变。窗口标签为此改到了 Ctrl+1 到 9;完整列表见 快捷键与命令。
Thread 的行可以拖动来调整顺序,见 Space、Project 与 Thread;也可以直接拖出侧边栏,给这个 Thread 一个自己的窗口:见 独占一个窗口的 Thread。
侧边栏收起时,把指针停在窗口左缘,或者停在侧边栏按钮上,它就会盖在终端上方滑出来,指针离开后再收回。下面的终端既不移动也不改变大小,所以里面运行的程序不会察觉到尺寸变化。从滑出的侧边栏里打开的菜单或重命名,会让它一直留着,直到你操作完。
Library
侧边栏显示一个 Space,Library 显示全部。这个窗口够得着的每个 Space 是一张卡片,卡片就是那个 Space 自己的侧边栏,带着它的 Project 和 Thread;卡片按所在的机器分组:先是 本机,然后是各台服务器,按它们的 Space 最早出现的先后排列。正在连接或连不上的服务器,会在名字旁边写明。作为文件夹显示的服务器(见 Space 菜单里的服务器)没有自己的卡片,只有这个窗口所在的那个 Space 例外。
它取代左边的侧边栏:窗口左边的一块面板,终端保留剩下的宽度。打开或关上它,终端只会按最终的宽度改变一次大小,里面的程序也只看到一次尺寸变化。拖动面板的边缘可以调宽或调窄,宽度会被记住。
打开它有三种方式:侧边栏底部的 Library 按钮(ThinkTerm Library),命令面板里的 ThinkTerm Library(这个动作可以绑定到按键上),以及在 macOS 上越过第一个 Space 继续轻扫。见 滑动切换 Space。Library 打开时,显示和隐藏侧边栏的按钮不起作用。
- 点一张卡片,这个窗口就切到那个 Space;点卡片里的某个 Thread,就打开那个 Thread。没连上的服务器上的 Space 会在切换途中连接。选了另一个 Space,Library 就收回去,选中的那张卡片变成侧边栏。在窗口已经在的 Space 里选,Library 仍然开在终端旁边。
- 别的窗口已经打开的 Space,不能从它的卡片打开。它的
更多菜单里只有一行my-space(已被占用),所以也不能从这里重命名或移除。 - 卡片的
更多按钮打开这个 Space 的菜单:重命名,以及 删除 里讲的移除。名字是在侧边栏的标题处编辑的,所以选重命名会先切到那个 Space、关上 Library,并在那里开始编辑。机器名旁边的+在那台机器上新建一个 Space,新卡片会出现,窗口仍留在当前的 Space 里。 - 滚轮或触控板沿着卡片那一排移动。卡片里的行没有置顶和垃圾桶按钮。
回到侧栏,也就是面板左边缘的箭头,把它关上。按 Escape 也行,除非菜单、命令面板、右侧栏里的文本框或别的什么在前面要用这个键;在卡片之外的面板上起手、朝终端方向轻扫触控板,也能关上。
面板的标题数出它装着的东西,形如 2 台机器 · 5 个空间。左边缘的圆形 设置 按钮打开设置。表示已关闭的更新的那个小点(见 更新),会落在这个按钮上,也落在通向它的侧边栏 Library 按钮上。
窗口标签与 pane 标签
标签分两层,值得分清。
窗口顶部那一排是窗口标签。每个窗口标签是一整套布局 —— 一个终端,或者左右、上下分屏的好几个 —— 切换窗口标签就是整套布局一起换掉。
设置 › 外观 › 一级标签栏 决定这一排是否保留它的位置。显示(默认)保留。自动隐藏 把这一排的高度还给终端,在指针停在窗口顶部边缘时,把这一排放下来盖在窗口上方。终端是被推下去而不是被缩小,所以不会重新排版,最后一两行在这一排收回之前会掉出视野。这一排末尾、+ 旁边的图钉可以让它一直露着:钉住后它像 显示 一样占着自己的高度。在设置里选 自动隐藏 时,图钉是松开的,而且图钉对所有窗口生效。这一排不在时,标签都还在;用键盘或命令面板切换。从键盘或命令面板重命名窗口标签,会把这一排放下来供你编辑;当前的终端正在连接或已离线时,这一排也会放下来,因为它是通向别的标签的路。
这一排不在时,macOS 保留左上角的红黄绿按钮,而右侧栏关着的时候,右上角的 pane 栏持有它的开关。在 Windows 和 Linux 上,这一排持有窗口自己的按钮和两个侧栏的开关,所以它不在时改由顶部一线的 pane 栏持有这些,pane 栏的空白处可以拖动窗口。独占一个窗口的 Thread,不管设置怎么写,这一排都收着;那个窗口只有一个窗口标签时,什么也不会把这一排放下来。
布局里的每一格上方都有自己的一条标签:一个 pane 栈。栈里的标签是轮流占用这一格的多个终端,所以一格里可以放好几个 shell,而不必再分屏。这条标签末尾的按钮分别用来在栈里新建标签、把这一格向下或向右分屏,以及把它放大到占满整个窗口标签;双击标签条的空白处也会在那里新建标签。窗口标签里只有一个 pane 时没有放大按钮,因为放大它什么也不会变;分屏之后按钮就回来了,已放大的 pane 上它会一直留着,用来还原。分享 打开时,会话 server 上的终端还会多一个分享按钮。如果这一格处在上下分屏中,还有一个按钮可以把它折叠成只剩标签条,把空间让给其余部分,每个窗口标签同时只能折叠一格。
pane 标签可以拖到某一格上。放在这一格自己的标签条上,它加入那一格的栈;放在靠近边缘处,它在那一侧把格子分开,占据新的一半;放在格子中间,它和那里正显示的 pane 互换位置。互换时两个 pane 各自换到对方在栈里的位置,并取得那一格的大小,所以格子本身和周围的 pane 都留在原处,被你拖动的那个 pane 会排在新栈的最前面并被选中。松手之前会有高亮显示结果:标签条、某一侧的一半,或者互换时的整个格子。被拖动的标签会跟着指针走,保持你抓住它的位置,松手时落进它的位置。
布局的变化带有动画。新开的分屏从它打开的那一侧滑进来,关掉的分屏沿原路滑出去。放大的 pane 从它的格子里长出来,其余的被推出窗口标签的边缘之外,放回去时又回来。被移动或互换的 pane 会飞到新的位置,其余的同时让路。动的只是画面:布局已经改好,所以 pane 里的程序只看到一次尺寸变化,而不是每一帧一次。设置 › 终端 › 分屏动画 默认开启,关掉它就关掉了以上所有动画。
在窗口标签上右键,有这些项:
| 菜单项 | 作用 |
|---|---|
重命名标签页… | 给窗口标签命名 |
关闭左侧标签页、关闭右侧标签页、关闭其他标签页 | 关闭这些窗口标签,不会先询问 |
标签页左移、标签页右移 | 在这一排里移动一格 |
在右侧新建终端标签页 | 在它旁边打开一个窗口标签,与它当前的终端在同一台机器上 |
放大窗格 | 把这个窗口标签里的当前格放大占满,或者还原 |
右键点这一排末尾的 +,会打开一个菜单,用你选的程序新开一个窗口标签。新建标签页 下列出这台机器上找到的 shell,设置 › 终端 › 默认 Shell 里选定的那个带勾。远程主机 之下是在远程主机页面保存的主机,打开方式与它们的 连接 相同;超过六台时收进各自的子菜单。再往下是配置文件里 launch_menu 的条目,以及 更多…,它打开这个右键以前打开的启动器。只有当前的终端运行在这台机器上时才会列出 shell;在别的机器上的终端里,右键打开的是启动器。两种情况下,配置文件里的 new-tab-button-click 处理函数都先运行,并且可以接管这次点击。
在 pane 标签上右键,可以给这个标签重命名。
在终端里右键,有 复制、粘贴、编辑录屏遮挡… 和 清除录屏遮挡(见 录屏遮挡)、向右分屏、向左分屏、向下分屏、向上分屏,以及 重置终端。最后一项 Frontend access 在 A · Shared (tmux-like) 和 B · Handoff (exclusive) 之间选择 —— 多台设备可以同时操作这个终端,还是一次只能一台 —— 详见 网页访问。终端里的程序捕获了鼠标时,右键时按住 Shift。右键也可以改成粘贴,或者复制与粘贴,而不是打开这个菜单;见 复制与粘贴。
独占一个窗口的 Thread
一个 Thread 可以有自己的窗口。在 Thread 的菜单里选 在新窗口打开,或者把 Thread 的行拖出侧边栏:这一行会变成一张跟着指针走的卡片,松手的地方就是 Thread 的窗口打开的地方。在 macOS 上,用 WebGPU 渲染器且不在全屏时,卡片可以跟着指针越过窗口的边缘;其他情况下,以及在 Windows 和 Linux 上始终,它停在窗口边缘。把卡片拖回侧边栏上方,它就变回一行。任何 Thread 都能拖出去,置顶的也可以。
新窗口只显示这个 Thread。它没有侧边栏,因此也没有自己的 Space,窗口标签那一排按 窗口标签与 pane 标签 里说的收着。关于其他 Thread 和 Space 的命令,比如 新建会话、切换 Space、Live Overview、Library 和 查找线程,会交给有侧边栏的窗口去办;显示或隐藏侧边栏在这里什么也不做。
一个 Thread 同一时间只显示在一个窗口里,因为两个窗口不能各自去改同一批终端的大小。原来显示它的窗口会换成一个页面,写着 这个会话已在另一个窗口打开。,带一个 前往窗口 按钮;Thread 开着的时候,它的菜单里用 前往窗口 代替 在新窗口打开。在另一个窗口的侧边栏里选这个 Thread,出来的也是同一个页面,而不是把 Thread 抢回来。
关掉这个窗口并不结束 Thread:它的终端继续运行,原先显示那个页面的窗口把 Thread 接回去。ThinkTerm 记得哪些 Thread 有过窗口,下次启动时重新打开它们。没在运行的 Thread,只有在它是本地的、并且属于第一个窗口所打开的那个 Space 时才会回来;不会为了一个你并没有刚刚要求的窗口去唤醒服务器。
标签图标
每个 pane 标签都带着一个图标,表示这个 pane 正在运行什么:Claude Code、Codex、Python、Neovim、Docker、一个 SSH 会话,等等;shell 或者没有图标认领的程序,显示普通的终端标记。pane 正在干活时,图标让位给一个转圈。顶部那一排窗口标签里装着好几个 pane,各自可能跑着不同的东西,所以它们始终显示终端标记。
pane 在运行什么,是从掌管它终端的那个程序推断出来的:在 pane 输出或改标题时才去看,而不是定时轮询,而且变化要保持半秒才算数 —— 一闪而过的命令不会让图标跟着闪。启动器和解释器会被看穿:sudo vim 显示 Vim,Python 或 Node 跑的脚本先按脚本名来认,认不出才退回解释器本身。ThinkTerm Connect 服务端上的 pane 由那台服务端观察,再报告给每个客户端,所以远程标签显示的图标和本地的一样。
走普通 SSH 时,本地掌管终端的程序就是 ssh 自己,标签只能显示 SSH 图标。普通 SSH 主机设置里的 识别远端程序 让远端 shell 自己报告正在运行什么:下次连接时,ThinkTerm 在那台主机的 bash 或 zsh 启动文件里加一行;关掉它,再下一次连接时删掉那一行。其他登录 shell 会被报告为不支持,什么都不改动。
那一行做的事,是在每条命令执行前把 WEZTERM_PROG 用户变量设为这条命令行,回到提示符时再清空。所以它没覆盖到的 shell,比如 fish,只要照样这么做,也能报告自己运行的程序。这个报告只在终端位于另一台机器上时才算数;对本地程序,以 ThinkTerm 自己看到的为准。
这些图标始终开着。设置 › 标签图标 把图标本身排成一格格可搜索的卡片。一张卡片列出它认领的程序名,它的形状和颜色都可以改:选一个 SVG,或者把 .svg 文件拖到卡片上,再设置底色和图案颜色。导入的 SVG 最大 256 KB;ThinkTerm 会在 ~/.config/thinkterm/tab-icons/ 里存一份副本,以它的哈希命名,所以移动或删除原文件不会丢掉图标。内置卡片可以重置回出厂的样子;自己的卡片最多 64 张,可以新建和删除。一个程序名同一时刻只属于一张卡片,所以把它加到某张卡片上,就会把它从原来那张上拿走。终端卡片是固定的,不出现在这里。在浏览器里打开的终端显示同样的图标,取自提供该页面的那台机器上设置的卡片;见 网页访问。
侧边栏里的图标与状态
Thread 的行会显示它的 pane 正在运行的程序,用的是和 pane 标签相同的卡片,所以在 设置 › 标签图标 里改了某个图标,这里也跟着变。Agent 排在最前,其他程序随后,普通的终端标记排最后;几个 pane 运行同一个程序,只出现一次。行的最右端有一个小标记,表示这个 Thread 在做什么。命令面板里的 查找线程 每一行也这样画这两样东西,标记会随着 Thread 工作而动。
设置 › 外观 › 图标与状态 有三行:
| 行 | 选项 | 作用 |
|---|---|---|
会话图标样式 | 角标(默认)、硬币横叠、群聊头像、放右边 | 几个程序怎么共用一行。角标 显示第一个程序的图标,第二个小小地挂在它的角上;更多时则显示还有几个。硬币横叠 显示第一个,其余叠在它后面,只露出边缘。群聊头像 把每个程序都画小一点,一起挤在同一个位置。放右边 把图标并排放在行尾、状态标记之前。除了 放右边,其他样式都把图标放在同样宽的位置里,所以名字是对齐的 |
侧栏状态样式 | 进度环、心跳、像素格(默认)、三个点 | Thread 行末尾的标记。进度环 是侧边栏一直以来的转圈和圆点。心跳 在工作时画一道心跳曲线,其余时候是一条平线。像素格 是三乘三的像素格。三个点 在工作时三个点轮流升起,其余时候只有一个点 |
Agents 状态样式 | 同样四种,默认 像素格 | 状态 面板和悬停卡片的同一个选择,它们有自己的设置。进度环 保留 Agent 状态 里描述的那些图标 |
不管选哪种,标记表达的意思都一样:在工作、在等你、因错误停下、已完成,或者都不是。已完成的结果在每种样式里都是一个对勾。你所在的那个 Thread 在工作或静止时显示为绿色;在等你或出错时保持它自己的颜色。
WezTerm 的标签栏
ThinkTerm 自己的那排标签属于窗口,配置既不能移动它也不能去掉它;它是留在原位还是自动隐藏,由 设置 › 外观 › 一级标签栏 决定,见 窗口标签与 pane 标签。WezTerm 的标签栏选项 —— enable_tab_bar、use_fancy_tab_bar、tab_bar_at_bottom、hide_tab_bar_if_only_one_tab 等等 —— 改为驱动终端区域里另一条一行高的栏,位于 pane 标签之下,或者沿着底边。
use_fancy_tab_bar = false 时,这条栏显示 WezTerm 的复古式标签,format-tab-title 和标签栏配色都作用在它上面。保持默认的 fancy 标签栏时,它在设置状态文字之前不会出现,比如用 window:set_right_status;一旦出现就一直占着这一行,所以时有时无的状态文字不会反复改变终端大小。enable_tab_bar = false 则把它彻底去掉。
Live Overview
标签栏没法告诉你十几个会话里哪个正在动,Live Overview 可以:它把每个活着的 Thread 摆成一张卡片,按所属 Space 分组,最多五列。
每张卡片显示那个终端此刻的样子,上方浮着一枚胶囊,写着 Thread 的名字和正在运行的命令。胶囊上还为 Thread 工作区里的每个标签各点一个点,跨越它的所有窗口:标签里有命令在运行时是蓝色,卡片上次显示它之后有新输出时更亮,空闲时偏淡,卡片当前显示的那个标签最大。把指针停在某个点上,卡片就预览那个标签;点一下,就在那个标签上打开这个 Thread。超过六个标签时,点会折叠成三个加一个计数,指针在上面停一会儿就会展开。
当前离线的机器仍然留在网格里,而不是从中消失,所以笔记本睡过去时,一个 Space 不会整个空掉。
如果那里还有东西在运行,关闭一张卡片会先询问,因为这会结束那个终端里的每一个分屏和正在运行的程序。
两套颜色
ThinkTerm 画两套调色板,分清哪套是哪套是值得的。
程序用来画字的那套是终端的:WezTerm 的 colors 和 color_scheme,文档在上游。ThinkTerm 多加了一种在配置文件之外选配色方案的办法,以及一个跟浅色界面配套的默认值,两者都可能挡在配置文件前面。
设置 › 外观 › 当前配色方案 显示终端当前用的配色方案。点它会在一个终端窗口里打开命令面板的 更换主题 列表,你在列表里移动时终端会跟着重画。在这里选的方案,或者直接在命令面板的 更换主题 里选的,会存进 settings.json,作用于所有窗口,并且压过配置文件里的 color_scheme —— 于是改那一行看起来毫无作用,直到你选同一列表最上面的 使用配置默认值,把选择交回给文件。配置文件里的 colors 仍然叠加在当前生效的方案之上。
什么都没选时,浅色界面会把终端画成 Apple System Colors (Light),除非配置文件自己指定了方案或设置了 colors,这样浅色窗口里就不会出现为黑底挑选的文字颜色。深色界面则交给配置文件决定。
ThinkTerm 画在终端周围的那套是自己的 —— 侧边栏、标签栏、每个 pane 上方的条、设置窗口、菜单 —— ui_colors 可以逐项覆盖它们,可用的项列在 配置 里。设置 › 外观 › 主题模式 提供四种模式:跟随系统、浅色、深色(默认),以及 跟随终端配色,后者把整个界面挪到终端当前配色方案的背景上。在 跟随终端配色 下不会替你选方案:那里是方案决定界面,而不是反过来。
终端文字可以被要求与背景之间保持最低对比度,这样把深灰画在黑底上的配色仍然读得清。设置 › 终端 › 最低文字对比度 提供 3:1、4.5:1 和 7:1,默认关闭,因为提高对比度也会把程序有意调暗的东西拉平 —— 禁用的菜单项、进度条未填满的那一半、注释。关闭时由 WezTerm 自己的 text_min_contrast_ratio 选项决定,它在你于配置文件里设置之前是空的;在设置里选了比例的话,以设置为准。
界面字号
ThinkTerm 自己的文字与终端文字分开设定大小。设置 › 外观 › 字体排版 为六个位置各提供一个步进器,范围 10 到 28,上方有一幅窗口小图,会点亮某一行所作用的部分:
| 设置 | 作用于 |
|---|---|
设置界面字号 | 设置窗口 |
主页字号 | 主页和主内容区 |
右侧栏字号 | 文件、笔记和片段;未设置时跟随 主页字号 |
工作区侧栏字号 | 左边的侧边栏 |
标签栏字号 | 顶部的窗口标签 |
窗格标题字号 | 各条 pane 标签 |
设置界面字重 决定设置窗口文字的粗细,从 300 到 800,每档 100。每一行都可以单独重置。终端的字体和字号在 设置 › 终端 和配置文件里 —— 见 配置。
应用图标
设置 › 外观 › 应用图标 在 蓝色药丸(默认)、红色药丸、经典 和 水獭 之间切换运行中的应用在程序坞和应用切换器里显示的图标。仅在 macOS 上有效。
程序坞图标数字
在 macOS 上,ThinkTerm 的程序坞图标可以带一个数字:有几个 Thread 里有你还没看的东西。它数的是侧边栏通知铃铛列出的那些 Thread,一个也没有时什么都不显示。设置 › 工作区 › Dock 图标数字 开关它,默认开启。它下面的 完成、等你、出错 选择哪些情形算数,默认三个都算。同一张卡片里的提示音和系统通知有同样的选择,详见 Agent 状态。
窗口透明度
设置 › 外观 › 窗口透明度 带 Beta 标记,让窗口变得半透明。它是一个从 30% 到 100% 的滑块,每档 5%,最右边是不透明,拖动时所有窗口都会跟着变。各个区域画得多深,见 为各个区域着色。没动过它时显示 默认,意思是由配置文件里的 window_background_opacity 决定;恢复默认 把选择交回给文件。
在 macOS 上,半透明的窗口还会加上半径为 20 的背景模糊,除非配置文件自己把 macos_window_background_blur 设成了非零值;设成 0 等同于没设。这个滑块在 Linux 上是灰的,设置里也注明它在 Windows 上还不够稳定,那里的 win32_system_backdrop 仍由配置文件决定。这个选择在没有配置文件时同样生效;其他重叠的项见 配置。
在 Windows 11 上,半透明的窗口和 macOS 一样自带毛玻璃:系统的亚克力,画在整个窗口后面。窗口是在创建时拿到它的,所以变成半透明或变回来,要等 ThinkTerm 重启后才显示,滑块一动设置就会这么说。它需要 OpenGL 渲染器。
macOS 的玻璃效果
在 macOS 上,设置 › 外观 › 玻璃效果 选择半透明窗口背后显示什么:模糊(默认),即上面说的背景模糊;磨砂,即铺在整个窗口后面的系统磨砂材质;只有 macOS 26 及更高版本还能选 液态玻璃 和 通透玻璃。选了立刻生效。更早的 macOS 上可以选 模糊 和 磨砂。通透玻璃叠在模糊上的 通透+模糊 已经不再提供,以它保存的设置会读作 磨砂。
为各个区域着色
在滑块能用的所有平台上,滑块旁边还有三行,设置半透明窗口里各个区域有多深:侧栏颜色(默认 深)、标签栏颜色 和 终端颜色(默认都是 浅)。每行可选 深、中 或 浅。在深色界面里,越深的色调越实,在浅色界面里则越透;选了同一种色调的区域看起来就一样。不透明的窗口保持原样,所以滑块在 100% 以下之前,这几行不会改变任何东西。
滚动
回滚按像素移动,而不是按行:触控板或触摸拖动跟着手指走,而不是一次跳一行。设置 › 终端 › 滚动方式 在 平滑(默认)和 逐行(一次移动一整行)之间切换。
每个 pane 在滚动时都会在右缘画出一条细滚动条,随后淡出 —— 不只是当前聚焦的那个。它可以拖动。设置 › 终端 › 滚动条 可以关掉它。配置文件里写了 enable_scroll_bar = true 时,不管这个开关怎么设,它都会换成 WezTerm 自己的滚动条,即当前聚焦 pane 旁边的一条边栏。
复制与粘贴
设置 › 终端 › 鼠标与剪贴板 有五行:
| 行 | 选项 | 作用 |
|---|---|---|
选中样式 | 圆角(默认)、直角 | 圆角 把选中的几行连成一整块;直角 每行一个方块 |
选中时自动复制 | 开(默认)、关 | 开着时,选中的文字直接放进剪贴板。关掉后,选中只是选中:用复制快捷键或右键来复制 |
右键 | 弹出菜单(默认)、粘贴、复制或粘贴 | 在终端里点右键做什么。复制或粘贴:有选中时复制并放开选中,没有时粘贴 |
复制粘贴效果 | 关(默认)、白光、彩光 | 复制或粘贴时,两道光沿着那段文字的上下两边,从你开始选的那一头跑到另一头,看得出复制了什么、粘到了哪里 |
焦点跟随鼠标 | 关(默认)、开 | 开着时,鼠标下面的 pane 不用点击就拿到焦点。按着按键拖动时不切换,别的应用在最前面时也不切换 |
关掉 选中时自动复制 后,Linux 上仍然会把选中的内容交给主选区,也就是鼠标中键粘贴的来源。
不管 右键 设成什么,右键时按住 Ctrl(macOS 上是 Control)都会弹出 窗口标签与 pane 标签 里讲的菜单。里面的程序捕获了鼠标时,和打开菜单本身一样要再按住 Shift。配置文件里接管了右键按下的 mouse_bindings 条目,仍然先于这一切接管整次点击。
底部语录
设置 › 终端 › 底部语录 在终端区域右下角显示一行短文字,默认关闭。它不占终端的地方:只画在最后一整行下面剩出的空隙里;如果空隙太窄 —— 窗口高度刚好是整数行 —— 就什么都不显示。语录字号 改变它的大小,而不改变终端的布局。另一台设备正在使用的终端,会在同一个角落显示一条可以接管它的提示(见 远程);这条提示在屏幕上时,语录不会绘制。
语录来自 ~/.config/thinkterm/bottom_quotes.json,是一组对象,每个有 text,author 可选:
[
{ "text": "Ship the small version first.", "author": "A colleague" },
{ "text": "Read the error message." }
]第一次要显示语录时,这个文件会带着一份初始列表被创建出来,语录文件 › 打开 可以打开它。文件保存后,改动就会被读到。语录轮换 选 顺序 就按列表顺序走,选 随机 就随机挑一条;语录间隔 决定多久换一次,从 1 分钟到 24 小时,默认一小时。轮换跟着时钟走,所以每个窗口显示的都是同一条。重置语录 JSON 用出厂列表覆盖这个文件,要按第二下才生效,因为你写在里面的内容会丢失。
终端里的图片
程序可以用 Kitty 图形协议、iTerm2 的内联图片或 Sixel 在终端里画图,和在 WezTerm 里一样。
终端也保存 Kitty 协议里较新的部分 —— Unicode 占位符、相对于其他图片放置的图片,以及动画 —— 但桌面窗口目前还不画这些。在浏览器里打开的终端会画;见 网页访问。反过来,浏览器不显示通过 iTerm2 协议发送的 PNG 或 JPEG。
每个 pane 最多保留 128 MiB 的 Kitty 图片数据,由 kitty_image_memory_budget_mib 设定,0 表示不限。超出时,先丢不在屏幕上的图片,从最旧的开始;如果光是屏幕上的就已超出,最久没放置过的也会从屏幕上拿掉,但最新的那张不会。单个动画最多保留 256 MiB,预算更小则以预算为准。
录屏遮挡
录屏或共享屏幕时,录屏遮挡用一块不透明的矩形盖住终端的一部分。在终端上右键,选 编辑录屏遮挡… —— 如果里面的程序捕获了鼠标,右键时按住 Shift;右键 没有设成 弹出菜单 时,还要再按住 Ctrl(macOS 上是 Control)。拖动空白处画出一块遮挡,拖动遮挡块移动它,拖动选中遮挡的任意一条边或一个角调整大小。方向键让选中的遮挡微微移动一点,按住 Shift 则是十倍的距离;Backspace 删除它。macOS 上按 ⌘Z、其他平台按 Ctrl+Z 撤销上一步编辑,编辑期间最多可以撤销 100 步。完成、Esc 或回车键让终端回到正常输入;同一个菜单里的 清除录屏遮挡 把它们全部去掉。
每块遮挡有自己的颜色,在浮在 pane 上方的工具条里选。工具条只有一行,左边有一个把手,可以拖到别处。十个色块依次是 跟随终端背景、黑色、一种灰色、一种灰白色,以及红、橙、黄、绿、蓝、紫。第一个跟随 pane 自己的背景,所以盖在提示符上的遮挡在切换主题时仍然看不出来。从终端里取色 取你接着点的那一格的底色,按 Esc 放下它。选的颜色作用于选中的遮挡,也作用于之后画的遮挡;不管什么颜色,遮挡始终不透明。色块旁边是 删除选中、全部清除 和 完成(Esc)。
遮挡属于某一个 pane,最多 64 块,并且固定在 pane 内的位置上:文字滚动时它们不跟着走,所以滚动或重新排布窗口之后,请检查一下录制画面。它们会随 pane 在窗口之间移动,也会出现在它的 Live Overview 卡片上。它们只存在于这一个 ThinkTerm 里 —— 接入同一会话的其他客户端收不到 —— pane 关闭或 ThinkTerm 退出时就没了。
遮挡盖住的是画面,不是内容。下面的文字仍然在终端里,在你复制出来的内容里,在日志里,也在接入同一会话的其他每个客户端上。
分享终端
分享让同一台机器上的其他账户实时观看你的某个终端。它默认关闭,设置里把它称为测试中的功能:以后可能移除,也可能有安全风险。设置 › 共享与同步 › 分享终端 打开它。关掉它会停止你正在进行的所有分享;如果某个分享在一台连不上的服务器上,它在那边继续运行,等服务器连得上了再停,ThinkTerm 会告诉你这件事。
打开之后,运行在会话 server 上的终端 —— 后台会话 server 或 ThinkTerm Connect 主机 —— 上方的标签条里会有一个分享按钮 分享这个终端。背后没有 server 的终端没有这个按钮;在 Windows 上,分享只用于 Linux 或 Mac 服务器上的终端。按钮打开一个面板,你在其中从那台机器的账户或组里选出谁可以看,选分享自动停止的时间,15 分钟 或 30 分钟,然后按 开始分享。
你选的人能实时看到这个终端,但不能打字。想打字要先申请,面板里会出现 <名字> 想往这个终端里打字,带着 拒绝 和 同意 30 分钟。你同意之后,对方能打字 30 分钟,收回 可以随时结束。面板里还列出正在看的人(正在看(2)),每个人旁边有 移出,另有 停止分享。
别人分享给你的终端,列在侧边栏下方的 分享给我 里。点一行,共享的终端就在新标签里打开。那个 pane 标签条里的按钮用来申请打字:申请接管,然后是 已申请 · 撤回,被同意后是 已接管 · 交还。运行着另一个版本 ThinkTerm 的账户显示为 <所有者> · 版本不同:在版本一致之前,它分享的东西看不了。在终端里,thinkterm cli share 列出和停止分享、管理观看的人,share watch 显示别人分享给你的那个;见 命令行。
右侧面板
终端右边的面板装着文件、笔记和片段,详见 文件与笔记,以及 Agent 状态 里讲的 状态 面板。安装的插件可以在这些之后加上自己的面板 —— 见 插件。片段本身就是一个内置插件。
设置 › 侧栏与插件 逐个开关这些面板,并列出已安装的插件。所有面板都关掉时,右侧栏本身就消失了。
右侧栏上次开着,新窗口和下次启动时也开着。这由 设置 › 侧栏与插件 › 记住右侧栏的开关状态 控制,默认开启;关掉它,每次都收起。
右侧栏收起后,也能像左边那样叫回来:把指针停在窗口右缘,或者停在它的按钮上,它就盖在终端上方滑出来,不改变终端大小。
更新提示
已知有新版本时,终端区域的右下角会浮着一枚胶囊,写着版本号。点一下就安装更新,并显示进度,装完后提供重启;详情见 更新。它会避开菜单、命令面板和对话框,也避开滑出来盖在这个角上的右侧栏;开着 底部语录 时,它位于语录行之上。
窗口在哪里打开
设置 › 通用 › 恢复主窗口位置与大小 会让主窗口按你上次离开时的大小和位置重新打开,macOS 和 Windows 上都有效。
渲染器
设置 › 通用 › 渲染器 在 WebGPU 和 OpenGL 之间选择,终端窗口和设置窗口都用它。改动在 ThinkTerm 重启后生效。没有选过时,渲染器跟随配置文件里的 front_end,默认是 WebGPU,Windows 上是 OpenGL;见 配置。
如果渲染器在这台机器上起不来 —— 对 WebGPU 来说,是没有可用的 Metal、DirectX 12 或 Vulkan 适配器 —— 窗口会改用另一个打开,所以选了一个在这台机器上不能用的渲染器,也不会把你锁在设置窗口之外、没法改回来。只有两个都起不来时,窗口才打不开。
