news 2026/9/4 14:09:55

一份配色,适配 20+ 终端:iTerm2-Color-Schemes 完整使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一份配色,适配 20+ 终端:iTerm2-Color-Schemes 完整使用指南

一份配色,适配 20+ 终端:iTerm2-Color-Schemes 完整使用指南

【免费下载链接】iTerm2-Color-SchemesOver 450 terminal color schemes/themes for iTerm/iTerm2. Includes ports to Terminal, Konsole, PuTTY, Xresources, XRDB, Remmina, Termite, XFCE, Tilda, FreeBSD VT, Terminator, Kitty, MobaXterm, LXTerminal, Microsoft's Windows Terminal, Visual Studio, Alacritty, Ghostty, and many more项目地址: https://gitcode.com/GitHub_Trending/it/iTerm2-Color-Schemes

iTerm2-Color-Schemes 是一个收录 600 多个终端配色方案的开源仓库,覆盖 iTerm2、Kitty、Alacritty、Windows Terminal、PuTTY 等 30 余种终端。它解决的核心问题是:你在 iTerm2 里调好的配色,想在别的终端继续用却每次都要手动改配置。项目亮点在于一条命令即可把任意方案批量转换成所有目标终端的配置文件,换终端不用再调一遍颜色。

换终端就要重调一遍颜色?三个常见场景

先看这个仓库解决的三类真实烦恼。

  • 多平台开发:你在 macOS 上用 iTerm2 习惯了 Nord 配色,Linux 服务器上跑的是 Kitty,Windows 机器上是 Windows Terminal——同一套颜色要手工配三遍,而且每遍都可能有色差。
  • 配色格式互不兼容:iTerm2 用.itermcolors,Alacritty 用 TOML,PuTTY 用注册表.reg,Kitty 用conf文本格式。格式之间没有任何官方转换通道。
  • 找不到合适的配色预览:想挑个舒服的深色主题,只能一个个装进终端里试。这个仓库的 screenshots/ 目录为每个方案都生成了 600x300 的预览截图,扫一眼就能筛选。

这些场景的共同点是:颜色的"设计"本身不难,难的是"搬运"。而这个仓库恰好只做搬运这一件事,并且做得很彻底。

核心原理:一份配方,20 多个"方言"翻译器

用一个类比来理解:把每个配色方案想成一份菜谱(16 个 ANSI 色 + 前景、背景、光标等颜色的固定组合),每个终端是会说不同"方言"的厨师。仓库里的转换引擎不关心方言差异,它先把菜谱统一读进来,再交给 30 多个"翻译器"各自输出本地格式。

技术上这个引擎就是 tools/gen.py,配合 tools/templates/ 目录下的 Jinja2 模板文件(Jinja2 是一种模板引擎,允许在固定文本中嵌入{{ 变量 }}占位符):

  • 输入源:schemes/ 里的.itermcolors文件(605 个),以及 yaml/ 里的 YAML 文件(155 个,格式兼容 Gogh 项目并做了扩展)。
  • 模板示例templates/alacritty.toml定义 Alacritty 配置骨架,templates/kitty.conftemplates/windowsterminal.json等其余 30 多个文件同理。
  • 颜色占位符:模板中用{{ Background_Color.hex }}{{ Ansi_1_Color.rgb }}这类变量引用具体颜色,{{ Dark_Theme }}还可以判断明暗主题走不同分支。
  • 输出规则:模板文件的目录名就是输出目录名,例如templates/vscode.json会生成vscode/主题名.json

想支持一个新终端,只需在 templates 里加一个文件,跑一遍生成脚本即可,不需要动任何转换逻辑。

3 条命令跑通全流程

以下路径均在仓库根目录执行。

第 1 步,装:克隆仓库并安装依赖(Python 3.10+,依赖仅 Jinja2、pyyaml、rich 等几个库,见 requirements.txt):

git clone https://gitcode.com/GitHub_Trending/it/iTerm2-Color-Schemes cd iTerm2-Color-Schemes pip install -r requirements.txt

第 2 步,跑:仓库里其实已经生成好了所有格式的文件,你只需要为某一个方案验证增量生成(-s指定方案名):

python3 tools/gen.py -s "Dracula"

执行后,alacritty/Dracula.tomlkitty/Dracula.confwindowsterminal/Dracula.jsonputty/Dracula.reg等 30 多个目录中的同名文件都会被重新生成。

第 3 步,验:打开任一产物确认内容合理,例如windowsterminal/Dracula.json里能看到backgroundforeground和 16 色black~brightWhite字段;也可以把alacritty/Dracula.toml拷进 Alacritty 配置目录(或写入~/.config/alacritty/alacritty.toml)重启终端查看效果。

进阶用法:从挑主题到改规则

批量导入 iTerm2:一条脚本装全部 600 个方案

在 macOS 上,tools/import-scheme.sh 通过PlistBuddy直接改写 iTerm2 的偏好 plist,把方案塞进 "Custom Color Presets":

tools/import-scheme.sh schemes/* # 导入全部 tools/import-scheme.sh Dracula 'Atom One Dark' # 按名称导入 tools/import-scheme.sh 'schemes/SpaceGray Eighties.itermcolors' # 按路径导入

脚本支持-v参数显示将要执行的操作。导入后需要完全退出并重启 iTerm2才能加载新预设。

贡献新方案:两种入口,一个生成器

按 README 的 Contribute 章节,新方案有两条路:

  1. 已有 iTerm 主题:把导出的.itermcolors放进schemes/目录,文件名即显示名(保留空格,不做 slug 化)。
  2. 其他格式主题:转成 YAML 放进yaml/,仓库提供了tools/kitty_to_yaml.pytools/ghostty_to_yaml.py两个 stdin→YAML 的转换助手。

然后依次验证:python3 tools/gen.py -s "你的主题名"生成各格式产物;python3 tools/wcag_check.py -s "你的主题名"检查对比度;cd tools && python3 -m screenshot_gen补生成预览截图。注意主题名含空格时命令里必须加引号。

可访问性自检:WCAG 对比度不是摆设

tools/wcag_check.py 按 WCAG 标准计算方案中前景/背景、ANSI 色的亮度对比。生成器本身也会介入:当某对颜色低于 1.75:1 的最小阈值时,gen.py会在生成时微调颜色以满足该下限,所以个别终端产物与原方案的色值略有出入是预期行为,不是 bug。

容易踩的三个坑

坑 1:import-scheme.sh 报"Fatal error: this script is for iTerm on macOS only"

  • 现象:在 Linux 上运行导入脚本直接退出。
  • 原因:脚本开头有uname -s检查,非 Darwin(macOS)直接报错,因为它依赖 macOS 专属的 PlistBuddy 和 iTerm2 的 plist 路径。
  • 解决:Linux/Windows 用户不要用它,直接取对应目录的成品文件即可(如kitty/windowsterminal/),这是仓库的正常设计而非环境故障。

坑 2:-s后主题名带空格,生成器提示 "No schemes found"

  • 现象python3 tools/gen.py -s SpaceGray Eighties匹配不到任何方案。
  • 原因:shell 把空格拆成了多个参数,-s拿到的是三个独立名字。
  • 解决:给名字加引号:python3 tools/gen.py -s "SpaceGray Eighties"。README 的命名规范专门强调过这一点。

坑 3:wcag_check 检查"失败",以为配色有问题

  • 现象:新主题跑wcag_check.py出现不及格项。
  • 原因:原始.itermcolors的个别 ANSI 色对比度确实偏低,属于上游数据问题。
  • 解决:参考 Contribute 章节说明,检查失败可以被接受,因为gen.py生成时会把不达标颜色调亮到 1.75:1 下限;真正要确认的是生成后产物在目标终端里的观感。

小结与资源

iTerm2-Color-Schemes 的价值不在"配色多",而在"一次定义、全终端可用"的转换流水线:605 个 iTerm 方案 + 155 个 YAML 方案,经 30 多个模板翻译成 30 余种终端配置。挑方案看 screenshots/,要配置直接取对应终端目录的成品文件,想贡献就按 README 的 Contribute 流程走schemes/yaml/入口。

  • 核心转换脚本:tools/gen.py
  • 模板目录:tools/templates/
  • 方案源文件:schemes/、yaml/
  • 导入脚本:tools/import-scheme.sh
  • 对比度检查:tools/wcag_check.py
  • 贡献者名单:CREDITS.md

【免费下载链接】iTerm2-Color-SchemesOver 450 terminal color schemes/themes for iTerm/iTerm2. Includes ports to Terminal, Konsole, PuTTY, Xresources, XRDB, Remmina, Termite, XFCE, Tilda, FreeBSD VT, Terminator, Kitty, MobaXterm, LXTerminal, Microsoft's Windows Terminal, Visual Studio, Alacritty, Ghostty, and many more项目地址: https://gitcode.com/GitHub_Trending/it/iTerm2-Color-Schemes

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 14:09:46

V 语言安装完整指南:5 分钟从零开始跑通 Hello World

V 语言安装完整指南&#xff1a;5 分钟从零开始跑通 Hello World 【免费下载链接】v Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C > V translation. ht…

作者头像 李华
网站建设 2026/9/4 14:09:21

微信聊天记录导出完全指南:4 种格式加年度报告,数据不出本机

微信聊天记录导出完全指南&#xff1a;4 种格式加年度报告&#xff0c;数据不出本机 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_…

作者头像 李华
网站建设 2026/9/4 14:05:54

PPT Master:一句话把文档变成原生 PowerPoint 的开源工具

PPT Master&#xff1a;一句话把文档变成原生 PowerPoint 的开源工具 【免费下载链接】ppt-master AI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations, data-backed charts and tables on demand, audio narr…

作者头像 李华
网站建设 2026/9/4 14:05:05

如何一句话驱动 Blender 建模:BlenderMCP 快速上手指南

如何一句话驱动 Blender 建模&#xff1a;BlenderMCP 快速上手指南 【免费下载链接】blender-mcp Community plugin to control Blender 3D with any LLM of your choice 项目地址: https://gitcode.com/GitHub_Trending/bl/blender-mcp BlenderMCP 是一个开源的 MCP 插…

作者头像 李华
网站建设 2026/9/4 14:04:04

解释一下TCP协议中的流量控制和拥塞控制机制。

TCP协议的流量控制想象一下&#xff0c;有两个小朋友&#xff0c;小明和小华&#xff0c;他们通过一条管道&#xff08;就像我们的网络连接&#xff09;传递小球&#xff08;数据包&#xff09;。小明的速度很快&#xff0c;可以不停地往管道里放小球&#xff0c;但小华取球的速…

作者头像 李华