这个仓库是我的个人环境配置仓库,主要用来存放:
- 常用 shell / editor / tmux 配置
- iTerm2 和 Rectangle 这类 macOS 工具的配置导出
- 一些小型辅助脚本
- 一套可复用的
tmux-powerline + codex集成配置
它的目标不是做完整的系统初始化,而是把“我关心的环境行为”收敛到一个可版本管理、可迁移、可回放的地方。
.
├── .gitconfig
├── .gitignore
├── .tmux.conf
├── .vimrc
├── .zshrc
├── LICENSE
├── README.md
├── RectangleConfig.json
├── SUMMARY.md
├── ShuotianiTermConfig.json
├── bin/
├── codex/
├── iterm.json
├── misc/
└── tmux-powerline/
Git 的轻量级个人配置,主要是一些常用 alias。
当前内容包括:
br->git branchci->git commitco->git checkoutdc->git diff --cachedpr->git pull --rebaseru->git remote updatest->git status
另外还配置了:
credential.helper = store
也就是说,这个文件主要承担“操作习惯”的作用,不是完整的 Git 全局配置。
仓库级忽略规则。目前只忽略 .DS_Store。
tmux 主配置文件。
它负责:
- 基础索引设置:窗口和 pane 从
1开始 - 终端能力设置:
xterm-256color - 快捷键绑定:快速创建窗口、左右切换窗口
- 外观配置:状态栏、pane border、message style、window format
- 鼠标支持
- vi 风格 copy mode
- 加载本机
~/Workspace里的两个 fork 插件:tmux-powerlinetmux-agent-indicator
这个文件现在是“入口配置”,真正的 powerline 外观细节在 tmux-powerline/ 目录下。
Vim 的轻量配置。
主要包括:
- 开启语法高亮
- 使用
darkblue颜色主题 - 自定义状态栏颜色
- 开启搜索高亮
- 使用较传统的 tab 配置:
tabstop=8shiftwidth=8noexpandtab
- 调整按键 wrap 和 timeout 行为
zsh prompt 配置。
当前重点是一个带主机名、当前路径、git 信息的 prompt:
- 成功 / 失败状态用不同颜色箭头表示
- 显示 hostname
- 显示当前目录
- 显示 git prompt 信息
这是一个非常小的 .zshrc,目前只承担 prompt 定制,不是完整 shell 环境初始化。
仓库许可证文件。
当前文档。说明整个仓库的用途、结构,以及每个文件 / 目录分别是做什么的。
仓库摘要文档。它比 README.md 更短,更像一页速览。
如果想快速知道仓库里有什么,可以先看这个;如果想看完整说明,以 README.md 为准。
macOS 窗口管理工具 Rectangle 的配置导出文件。
主要包含:
- 默认行为配置
- 窗口 snapping 相关设置
- 是否开机启动
- 是否隐藏菜单栏图标
- 一组快捷键绑定
从当前内容看,快捷键主要用于:
- 左半屏
- 右半屏
- 上半屏
- 下半屏
- 最大化
- 恢复窗口
iTerm2 profile 配置导出文件。
它是一个比较完整的 terminal profile,包括:
- 字体
- ANSI 颜色
- 前景 / 背景色
- 键盘映射
- 滚动历史
- 鼠标行为
- 日志目录
这个文件更像“某一份默认 iTerm2 profile 的快照”。
另一份 iTerm2 profile 导出。
和 iterm.json 很接近,属于另一份 profile 快照或历史版本备份。可以理解为:
iterm.json:一份 iTerm2 配置导出ShuotianiTermConfig.json:另一份相近配置导出
如果以后整理仓库,可以考虑把两者的区别写清楚,或者合并掉不用的那一份。
放可执行辅助脚本。
用于快速启动一个名为 codex 的 tmux session,并自动创建多个窗口运行 codex --yolo。
它负责:
- 检查
tmux和codex是否已安装 - 如果 session 已存在,直接 attach / switch
- 如果 session 不存在,创建:
codex-1codex-2codex-3
- 每个窗口都在指定工作目录下启动 Codex
适合做多窗口并行 agent 工作流。
这是当前 powerline 方案的安装 / 重放脚本。
它会做这些事:
- 检查本机是否存在两个 fork 插件目录:
~/Workspace/tmux-powerline~/Workspace/tmux-agent-indicator
- 把仓库里的配置文件 symlink 到用户目录:
~/.tmux.conf~/.config/tmux-powerline/config.sh~/.config/tmux-powerline/themes/stcheng.sh~/.config/tmux-powerline/segments/agent_indicator.sh
- 确保
~/.codex/config.toml中有notify配置 - 重新加载 tmux
这意味着:
- 仓库负责保存“配置”
~/Workspace里的 fork 仓库负责保存“插件源码”
这是当前推荐的职责边界。
放和 Codex CLI 集成有关的配置片段。
这是一个很小的 TOML 片段,只包含:
notify = ["bash", ".../tmux-agent-indicator/adapters/codex-notify.sh"]
它的作用是告诉 Codex CLI 在事件发生时通知 tmux-agent-indicator,从而让 tmux 中的 agent 状态可以被显示出来。
注意:
- 这个文件本身不会自动生效
- 真正把它写入
~/.codex/config.toml的,是bin/setup-powerline.sh
因此它更像“配置来源”或“配置模板”,不是直接被程序读取的最终文件。
放一些零散的小工具,不属于主环境配置链路。
一个简单的 Python 脚本,读取格式为 key,value 的 CSV 文件,然后按 key 聚合并计算均值。
输入示例:
a,1
a,3
b,2输出示例:
a,2.0
b,2.0
这是一个独立小工具,和 tmux / iTerm / Codex 配置没有关系。
放本仓库自己的 tmux-powerline 用户层配置,而不是插件源码本身。
插件源码在:
~/Workspace/tmux-powerline
这个目录保存的是“覆盖层”和“自定义层”。
tmux-powerline 的主用户配置。
目前负责:
- 开启 patched font / Nerd Font glyph
- 指定自定义主题名为
stcheng - 指定用户 themes 和 segments 的目录
- 设置状态栏刷新间隔
- 设置左右状态栏长度
- 设置 git branch 图标颜色
这个文件是 powerline 行为层面的总开关。
自定义主题文件。
主要定义:
- separator glyph
- 默认前景 / 背景色
- window status 样式
- 左右状态栏 segment 排列
- 当前使用的蓝色渐变配色
当前左侧大致是:
- session info:深蓝
- hostname:中蓝
- git branch:浅蓝
右侧则是更深、更克制的蓝色系,文字统一为白色。
自定义 powerline segment。
它会调用:
~/Workspace/tmux-agent-indicator/scripts/indicator.sh
然后把返回结果嵌入 tmux-powerline 右侧状态栏。
作用是把 Codex / agent 状态整合进 powerline,而不是只显示普通时间、路径之类的信息。
当前链路大致如下:
~/.tmux.conf加载本机 fork 的tmux-powerline和tmux-agent-indicatortmux-powerline从~/.config/tmux-powerline/读取用户配置- 这些用户配置实际是 symlink 到本仓库里的文件
agent_indicator.sh这个自定义 segment 会调用tmux-agent-indicator- Codex CLI 通过
notify把事件发给tmux-agent-indicator tmux-agent-indicator再把状态显示到 tmux 里
也就是说:
- 插件源码在
~/Workspace - 配置源码在这个仓库
setup-powerline.sh负责把两者接起来
如果迁移到新机器,或者想重新应用这套配置,先准备好两个 fork:
~/Workspace/tmux-powerline~/Workspace/tmux-agent-indicator
然后执行:
~/Workspace/env/bin/setup-powerline.sh它会把当前仓库里的 powerline 配置重新链接到 $HOME 下,并刷新 tmux。
- 给
iterm.json和ShuotianiTermConfig.json标注清楚差异 - 给
bin/tmux-codex.sh增加参数说明 - 把
codex/notify.toml和setup-powerline.sh的关系写成更明确的安装流程 - 如果以后还有更多 tmux 自定义,可以继续放进
tmux-powerline/或新增tmux/目录