feat: setup.sh 自动配置 iTerm2 tmux 集成,无需手动 GUI 操作

- 通过 defaults write 直接修改 iTerm2 plist 配置
- OpenTmuxWindowsIn=2(标签页模式)+ AutoHideTmuxClientSession=true
- README 更新:说明 iTerm2 配置已自动化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
wuguanganandClaude Opus 4.6 committed 2026-03-31 14:10:38 +08:00
1 parent a3f707d629
commit e029bbc1ce
2 files changed
+19 -8

No files matched your search

+10 -8
View File
@@ -29,18 +29,20 @@ brew install node
npm install -g @anthropic-ai/claude-code
```
### 2. 配置 iTerm2(关键!不配体验会很差)
### 2. iTerm2 tmux 集成(setup.sh 自动配置)
项目使用 `tmux -CC` 模式(iTerm2 专属),让 tmux 窗口显示为**原生标签页**,而不是终端内的分屏。
项目使用 `tmux -CC` 模式(iTerm2 专属),让 tmux 窗口显示为**原生标签页**。
打开 iTerm2 → **Settings** (⌘,) → **General** → **tmux**:
`setup.sh` 会自动执行以下配置,**无需手动去 GUI 里勾选**:
| 选项 | 设置 | 说明 |
|------|------|------|
| When attaching, open unrecognized windows in | **Tabs in a new window** | tmux 窗口显示为 iTerm2 标签页 |
| Automatically bury the tmux client session after connecting | **✅ 勾选** | 连接后隐藏控制会话,避免多余的空白标签 |
```bash
# tmux 窗口显示为 iTerm2 标签页(而非独立窗口)
defaults write com.googlecode.iterm2 OpenTmuxWindowsIn -int 2
# 连接后自动隐藏 tmux 控制会话(避免多余的空白标签)
defaults write com.googlecode.iterm2 AutoHideTmuxClientSession -bool true
```
> **为什么需要这两项?** Hub 通过 `tmux -CC attach` 让 iTerm2 接管 tmux 窗口的渲染。不勾选第一项,每个项目窗口会变成独立的终端窗口而非标签页;不勾选第二项,会多出一个无用的控制台标签页。
如果需要手动验证,可以打开 iTerm2 → **Settings** (⌘,) → **General** → **tmux** 查看这两项是否已勾选。
### 3. macOS 权限授权
+9
View File
@@ -104,6 +104,15 @@ else
echo -e "${GREEN}✓ projects.yaml 已存在${NC}"
fi
# 配置 iTerm2 tmux 集成(命令行直接写 plist,无需手动去 GUI 勾选)
if command -v defaults &>/dev/null; then
# tmux 窗口显示为 iTerm2 原生标签页(0=Native windows, 2=Tabs in new window)
defaults write com.googlecode.iterm2 OpenTmuxWindowsIn -int 2
# 连接后自动隐藏 tmux 控制会话
defaults write com.googlecode.iterm2 AutoHideTmuxClientSession -bool true
echo -e "${GREEN}✓ iTerm2 tmux 集成已配置${NC}"
fi
# 确保脚本有执行权限
chmod +x "$HUB_DIR/scripts/"*.sh
echo -e "${GREEN}✓ 脚本权限已设置${NC}"