如何配置和下载 st 终端模拟器

更新时间

st 的配置通过修改源码目录中的 config.h 完成,下载则有两种方式:从官网获取源码包,或用 git 克隆仓库。当前官网提供的最新发布版是 st 0.9.3(48kb,2025-08-09)。这套流程适合愿意自己编译、接受“改配置即改源码”的 X11 用户;如果你需要开箱即用的图形化设置界面,st 不是这种路线。

下载 st 的两种方式

方式一:下载发布源码包

访问 st 官网的下载入口,获取 st 0.9.3 的源码压缩包(48kb)。适合想固定使用某个发布版本、不追踪最新提交的用户。下载后解压,进入源码目录即可开始配置和编译。

方式二:用 git 克隆源码仓库

官网给出的命令是:

git clone https://git.suckless.org/st

适合想跟进最新开发状态、或打算基于最新代码打补丁的用户。st 处于活跃开发中,仓库里的代码可能比 0.9.3 发布包更新。

两种方式得到的都是一份需要自行编译的 C 源码,没有预编译安装包。

配置 st:改 config.h

st 的配置方式很直接:配置写在 config.h 里,改完重新编译生效。官网明确说明配置通过 config.h 完成,并要求阅读生成的 config.h 中的注释,按需修改。

关键点是默认值的存放位置:默认配置保存在 config.def.h。也就是说,config.h 是你本地的实际配置文件,config.def.h 是上游维护的默认模板。第一次编译时,如果 config.h 不存在,构建过程会从 config.def.h 生成它。

具体步骤

  1. 进入源码目录,确认存在 config.def.h。
  2. 若尚无 config.h,先执行一次 make 让它生成,或直接复制:cp config.def.h config.h。
  3. 打开 config.h,按文件内注释修改。可配置的内容包括快捷键、颜色、字体等,官网列出的相关能力有:剪贴板处理、鼠标与键盘快捷键(通过 config.h)、256 色与真彩色、抗锯齿字体(使用 fontconfig)、回退字体。
  4. 保存后重新编译并安装,使改动生效。

验证方法

重新编译安装后,启动 st,检查你改动的项目是否按预期表现,例如快捷键是否触发对应动作、字体与颜色是否变化。若没有变化,最常见的原因是改的不是实际参与编译的 config.h,或改完没有重新编译。

常见卡点

  • 改了 config.def.h 却没生效:日常应改 config.h;config.def.h 是默认模板,用于重新生成或对照。
  • 忘记重新编译:st 的配置是编译期写入的,不重新编译就不会生效。
  • 升级源码后配置丢失:拉取新代码后注意保留自己的 config.h,避免被默认模板覆盖。

st 能做什么:判断它是否适合你

官网列出的已实现功能包括:

类别 已实现
终端仿真 大部分 VT10X 转义序列
字符支持 UTF-8 宽字符、行绘制
输入法 XIM
会话记录 通过 utmp(1) 支持 utmp
交互 剪贴板处理、鼠标与键盘快捷键(经 config.h)
显示 调整窗口大小、256 色与真彩色、抗锯齿字体(fontconfig)、回退字体
其他 串口线路支持

它的设计取向是“简单终端”:官网引用 xterm 的 README 说明动机——xterm 超过 6.5 万行代码、模拟大量冷门过时终端,而终端仿真本不需要这么复杂。st 因此把功能收敛到常用范围,配置也不做成运行时选项,而是编译期常量。

适用条件:使用 X11、愿意编译源码、接受用编辑头文件的方式配置。不适合:需要图形化设置界面、或需要模拟大量冷门终端的场景。

进一步了解

  • FAQ:维护在 st 的源码仓库中,遇到具体问题可先查这里。
  • 目标与待办:官网提供 goals 与 TODO,可了解设计边界和尚未实现或待修复的内容。
  • 补丁:官网有 patches 入口,社区补丁是 st 扩展功能的常见方式。
  • 开发状态:st 处于活跃开发中,可浏览源码仓库了解最新进展。