常规
设置 → 常规 是管应用行为的界面:新终端打开哪个 shell、命令输出怎么上色、窗口如何绘制、它的关闭按钮做什么,以及智能体需要你时 Codeg 用什么方式叫你。
这里的每一项都在你更改的那一刻生效 —— 渲染随后会要求重启,而自定义 shell 路径要等旁边的 保存 按钮。
0.31.2 搬走了两个面板
多智能体协同 和 会话内工具 此前待在本界面底部,现在它们有了自己的入口:设置 → 协作。而原本折叠在最底下的 内置浏览器 区块,成了 设置 → 浏览器操作 —— 在 0.33.0 之前它叫浏览器。
默认终端
选择当你从终端栏或文件树打开一个新终端标签页时,Codeg 启动的 shell。默认 shell 下拉框是通过探测你的机器构建的,因此它列出的是你实际拥有的:
- 系统默认 —— 由你的操作系统提供的任何 shell。
- 具名 shell —— 在 Windows 上是 PowerShell 7 (pwsh)、Windows PowerShell 和 Command Prompt (cmd);未安装的 shell 仍会出现,并标注为 未安装。
- 自定义路径 —— 输入一个绝对路径(或可在
PATH上解析的名称),然后 保存。如果该路径在此主机上不存在,Codeg 会警告你,但仍允许你保存。
选择具名选项会立即保存;自定义路径则要等旁边的保存按钮。
下拉框下方的 当前使用:… 会写出你的选择实际解析到哪个程序 —— 而自 0.31.2 起,它回答的是你选的那一项,而不是这台主机的兜底值。在那之前,无论你选哪一行它都打印同一个路径(在典型的 Windows 机器上是 C:\WINDOWS\system32\cmd.exe),读起来就像这个设置什么也没做。现在 Windows PowerShell 会回读为 …\v1.0\powershell.exe,主机找不到的 shell 会被原样回显,而不是悄悄换成一个你没选的;行上的未安装标注也来自同一次探测 —— 两者不可能互相矛盾。
这个 shell 所服务的终端,就是工作区中的那个。而从 0.25 起,它不只是那个终端:当一个智能体请求 Codeg 执行一整条命令行时,那条命令也走这个 shell。保持在系统默认上,则与以前完全一样。
它够不着的是自带 shell 的智能体:Codex 和 Claude Code 在自己的进程里执行命令,从不请 Codeg 代劳,所以这个选择器对它们用什么没有发言权。
非 POSIX 的 shell 可能读不懂智能体写的东西
智能体产出的是 POSIX 语法——&&、2>&1、$(…)。你交互时用什么 shell 是你的自由,但把这里指向一个不读 POSIX 的 shell,意味着智能体的命令行可能直接报语法错误,而不是做成任何事。会踩到这一点的是 fish、nushell 和 Windows PowerShell 5.1;PowerShell 7 和 cmd 各有自己的调用约定,已被单独处理。
强制命令输出带颜色
默认关闭。打开后,Codeg 会在智能体的环境里设置 CLICOLOR_FORCE=1,强制它所执行的命令输出 ANSI 颜色 —— 于是这些输出在对话里带颜色渲染,而不是一片纯文本。对此后启动的会话生效。
它默认关闭是有原因的,值得在打开之前知道。像 Claude Code 这样的智能体是在自己的进程里派生 shell 命令的,因此这个变量会被下游一切继承;而按惯例,CLICOLOR_FORCE 恰恰是 NO_COLOR 也压不住的那一个颜色变量。Codeg 渲染的输出和智能体解析的输出是同一份:gh … --json 会把 ANSI 吐进 JSON 里,再管道给 jq 就失败了。智能体也会把这些转义序列一并吃进自己的上下文 —— 为可能根本没人看的颜色花掉 token。
无论如何,智能体自己环境变量里的 CLICOLOR_FORCE 仍然优先于这个开关。
禁用硬件加速
一个开关,以它做的事命名,而不是以它所属的类别命名 —— 把它打开,关掉的是加速。当应用出现黑屏或渲染故障时可以找它:Windows 上某些 AMD GPU 与 Intel 集成显卡,以及 Linux 上的 NVIDIA 闭源驱动。它会改变底层 webview 的绘制方式,因此 Codeg 会保存该选择,然后要求你 立即重启 以使其生效 —— 而且从 0.30.3 起,把它重新关掉同样会在那次重启后生效,不再被新进程继承下来、看起来像是没关掉。
本节出现在本机的 Windows 或 Linux 桌面窗口里,因为那里才有可拧的旋钮:WebView2 与 WebKitGTK 各自暴露了一个应用能在启动时翻转的开关。macOS 的 WKWebView 一个也没有,所以那里干脆不显示这个开关,而不是给一个按了也没用的;浏览器会话同样没有;而连接到远程工作区的桌面窗口也会把它隐藏起来,因为它要重绘的 webview 是本机这个,而你正在编辑的设置属于远端主机。
关闭按钮行为
窗口的 ✕ 究竟做什么 —— 由你来选,而不是由应用来猜。0.30.8 新增,三个取值:
- 每次都问(默认)—— 弹一个带记住我的选择勾选框的对话框。勾上就把答案定下来,而这个设置之后仍可修改。
- 最小化到托盘 —— 窗口隐藏,Codeg 继续运行,也就是以前只要有托盘就会做的事。
- 退出 codeg —— 关闭按钮直接退出。
旧行为是一条写死的规则 —— 有托盘就隐藏到托盘,没有就退出 —— 于是一部分人发现应用还在跑,另一部分人发现它没了,而谁都没法说出自己要的是哪一种。
托盘能力优先于这个偏好。 在没有可用托盘的系统上,无论存着什么值,关闭按钮一律退出,选择器会明确禁用并给出原因 —— 在没有东西能把主窗口唤回来的地方隐藏它,会把那些不进任务栏的 webview(比如桌面宠物)一起晾在那儿。仅限本机桌面窗口:连接到远程工作区的窗口,配置的会是别人机器上的关闭按钮,因此那里不显示本节。
桌面通知
当智能体需要你时,Codeg 会弹出一条系统通知 —— 这是与提示音同一个想法的另一半,也正因如此它们紧挨着:一个会离开这个窗口,一个不会。
它默认是开着的,和它下面的提示音相反,而这个不对称是刻意的:桌面通知在这个界面出现之前就已经能用,所以那个给它们加上开关的版本,不能同时成为悄悄停止投递它们的版本。提示音则是真正新增的东西,一个安静的安装理应保持安静。所以这里的默认值就是把旧行为写下来 —— 全部打开,只在窗口不在视野里时投递。无论如何本节初始都是折叠的;把总开关打开会同时展开,因为那本来就是一个「想看看它有什么」的请求。
四组控制项:
- 权限 —— 这个浏览器或这台机器到底会不会真的显示通知,明说而不是默认它会。已允许、已阻止(只有浏览器自己的站点设置能撤销,页面无法再次询问)、尚未请求,并附一个允许通知按钮;或者不可用,意思是页面不在安全上下文里:请通过 HTTPS 或 localhost 访问这台服务器。桌面应用是诚实的那个特例 —— 它通过系统通知中心投递,而系统不会回报 Codeg 是否被允许,所以它写的是由系统管理,并提供发送测试通知与打开系统设置,而不是给你一个它只能靠猜的状态。
- 投递身份 —— 系统把这些通知归到哪个应用名下。正常情况下是 Codeg;如果 Codeg 自己的标识没能被认领,这一行会点出实际生效的是哪个应用的开关,并说明把 Codeg 装进「应用程序」文件夹就能恢复它自己的身份。
- 何时通知 —— 始终、窗口未聚焦时,或窗口不可见时。最后一个是默认值,也是最严格的一个,它就是这项设置存在之前 Codeg 的行为。它同时也是「我从来收不到通知」的答案:一个开在第二块显示器上的窗口是可见的,所以「不可见时」永远不会为它触发。如果说的是你,就选「未聚焦时」。
- 隐藏通知内容 —— 用一句通用的话替换正文,使智能体的输出永远不会进入通知中心 —— 通知中心会把内容留在应用之外,在你已经关掉那段对话之后依然如此。对话的标题同样会被略去,通知的标题写作文件夹名 - Codeg,所以你还是知道该回到哪里。
通知会点出它所属的对话。 自 0.32.3 起,通知的标题就是那段对话自己的标题,正文开头是那段对话所在的文件夹,而不是窗口此刻恰好打开着的那个 —— 对于一个在智能体还在干活时就被你关掉的标签页,以及画布上的一张卡片,也都是如此。
再往下是逐事件的开关,共六个:对话完成、权限请求、智能体提问、代理错误、后台任务和工作任务。几秒之内同一事件的重复会合并成一条通知。
事件列表不等于提示音列表
提示音对应的是聊天频道推送的那五个触发点。通知对应的则是这个应用实际会去提醒的事,两者并不相同:它多了一个落定的后台任务,以及一个进入待审或失败的工作任务 —— 这两个应用层的事件在智能体协议里根本没有对应的信封 —— 同时去掉了发送消息,那是你自己敲键盘的回声,没有理由出现在通知中心里。
提示音
默认关闭。打开之后,智能体事件会播放一段短提示音,于是你可以把一个长回合丢在另一个窗口里跑,同时仍然知道它什么时候需要你。
这五个事件与聊天频道推送的完全一致 —— 同样的触发点,不同的出口;频道消息会离开这台机器,提示音不会:
| 事件 | 默认音效 |
|---|---|
| 对话完成 | 叮咚 |
| 权限请求 | 警示 |
| 智能体提问 | 清铃 |
| 代理错误 | 下行音 |
| 发送消息 | 静音 |
可选的音效共七种 —— 叮咚、清铃、短音、轻点、警示、下行音,外加静音,用来单独跳过某个事件而不影响其余 —— 每一种都有试听按钮。发送消息默认静音,因为它是由你自己的动作触发的,在五者中最没有提示价值。
有两项设置作用于全部事件:一个音量滑块,以及仅在窗口未聚焦时播放 —— 你正盯着 Codeg 时保持安静。
和桌面通知一样,本节也是初始折叠的 —— 这两节加在一起,从前会把整页占满,让下面的东西都得先翻过去才看得到。
两者都按设备保存
通知和提示音是本界面上仅有的两个存在你所使用的那个浏览器或应用里、而不是存在 Codeg 数据库里的部分。提醒落在哪里,是你所在那台机器的属性:一个连着同一台服务器的手机浏览器,没有理由因为你的桌面端配置过就开始响 —— 或者震。对提示音来说,它同时还意味着只会在那台设备的工作区窗口里播放。
值得了解
- 一改就保存。 本界面没有保存按钮;只有自定义 shell 路径要等一个,因为半截路径算不上一个设置。渲染另外还需要一次重启。
- 有两处可能整块不出现,各有各的理由。 渲染只出现在本机的 Windows 或 Linux 桌面窗口里,因为那里才有可拧的 webview 旋钮;关闭按钮选择器也只出现在本机桌面窗口里,而在没有可用托盘的系统上它会带着原因被禁用。在浏览器里、以及连接到远程工作区的窗口里两者都不在 —— 那里配置的会是另一台机器。
- 这里的「颜色」不是应用的颜色。 强制命令输出带颜色 管的是智能体所执行命令的输出。它与应用自身的主题无关(那是外观),也与你自己敲命令的终端无关。
- 在找智能体的工具开关? 委派和会话内工具已在 0.31.2 搬到协作,内置浏览器搬到浏览器操作。