个人软件配置和常用脚本集合,使用 chezmoi 统一管理 dotfiles。
- 🚀 一键安装:自动检测系统、安装 chezmoi、应用所有配置
- 🔄 智能同步:配置差异自动检测和应用,软件状态智能管理
- 🎯 跨平台支持:Windows、macOS、Linux(Arch/Ubuntu/CentOS/Fedora)
- 📦 模板化管理:使用 chezmoi 模板系统实现平台特定配置
- 🔧 自动化安装:通过
run_once_机制自动安装常用软件 - 🛠️ 工具脚本集合:跨平台脚本工具,涵盖开发、网络、媒体处理等场景
# 克隆项目
git clone <repo-url>
cd script_tool_and_config
# 运行一键安装脚本
./install.sh# 1. 安装 chezmoi
bash scripts/chezmoi/install_chezmoi.sh
# 2. 设置源状态目录
export CHEZMOI_SOURCE_DIR="$(pwd)/.chezmoi"
# 3. 应用所有配置
chezmoi apply -v双击 scripts/windows/install_with_chezmoi.bat(需要管理员权限)
| 文档 | 说明 |
|---|---|
| OS_SETUP_GUIDE.md | Windows/macOS 新系统完整安装指南 |
| chezmoi_use_guide.md | chezmoi 详细使用指南 |
| SOFTWARE_LIST.md | 完整软件清单和安装说明 |
| project_structure.md | 详细项目结构说明 |
| AGENTS.md | 代码代理开发指南 |
- 版本:Windows 10/11
- 包管理器:winget(优先)、MSYS2 pacman
- Shell:Git Bash、PowerShell
- 版本:macOS 10.15+(Catalina 及以上)
- 包管理器:Homebrew(必需)
- 架构:Intel (x86_64) 和 Apple Silicon (arm64)
| 发行版 | 包管理器 | 测试状态 |
|---|---|---|
| Arch Linux | pacman | ✅ 已验证 |
| Ubuntu/Debian | apt | ✅ 已验证 |
| CentOS/RHEL | dnf/yum | ✅ 已验证 |
| Fedora | dnf |
script_tool_and_config/
├── .chezmoi/ # chezmoi 配置源目录
│ ├── dot_* # 通用配置文件(模板格式)
│ ├── dot_config/ # ~/.config 目录下的配置
│ ├── run_once_install-*.sh.tmpl # 自动安装脚本(仅首次执行)
│ ├── run_on_linux/ # Linux 特定配置
│ ├── run_on_darwin/ # macOS 特定配置
│ └── run_on_windows/ # Windows 特定配置
│
├── scripts/ # 脚本工具集合
│ ├── common.sh # 通用函数库
│ ├── manage_dotfiles.sh # dotfiles 管理脚本
│ ├── chezmoi/ # chezmoi 相关脚本
│ ├── common/ # 跨平台脚本
│ ├── linux/ # Linux 专用脚本
│ ├── macos/ # macOS 专用脚本
│ └── windows/ # Windows 专用脚本
│
├── dotfiles/ # Git Submodule(仅 nvim 配置)
│ └── nvim/ # Neovim 配置
│
├── install.sh # 一键安装脚本
├── README.md # 本文件
├── AGENTS.md # 代码代理开发指南
├── chezmoi_use_guide.md # chezmoi 使用指南
├── SOFTWARE_LIST.md # 软件清单
└── project_structure.md # 项目结构说明
# 应用所有配置
./scripts/manage_dotfiles.sh apply
# 查看配置差异
./scripts/manage_dotfiles.sh diff
# 查看配置状态
./scripts/manage_dotfiles.sh status
# 编辑配置文件
./scripts/manage_dotfiles.sh edit ~/.zshrc# 应用所有配置
chezmoi apply -v
# 查看配置差异
chezmoi diff
# 编辑配置文件
chezmoi edit ~/.zshrc
# 添加新配置文件
chezmoi add ~/.new_config- fnm - Node.js 版本管理
- uv - Python 包管理器
- rustup - Rust 工具链
- starship - 跨 shell 提示符
- tmux - 终端复用器
- alacritty - GPU 加速终端模拟器
- bat - cat 替代工具(语法高亮)
- eza - ls 替代工具
- fd - find 替代工具
- ripgrep - grep 替代工具
- fzf - 模糊查找工具
- neovim - 现代文本编辑器
- git - 版本控制系统
- lazygit - Git TUI 工具
- gh - GitHub CLI
详细软件清单请参考:SOFTWARE_LIST.md
通过 chezmoi 统一管理所有配置文件,支持:
- Shell 配置(Bash、Zsh、Fish)
- 终端配置(Tmux、Alacritty)
- 窗口管理器(i3wm、dwm、Yabai)
- 开发工具配置(Neovim、Git)
通过 run_once_ 脚本自动安装常用软件:
- 自动检测操作系统和包管理器
- 智能跳过已安装软件
- 支持代理配置
- 详细的安装日志
按平台分类的实用脚本:
跨平台脚本(scripts/common/)
- utils/: 通用工具脚本
- project_tools/: 项目生成和管理工具
- media_tools/: 媒体处理工具
- git_templates/: Git 模板和配置
Linux 专用脚本(scripts/linux/)
- system_basic_env/: 系统基础环境安装
- network/: 网络配置脚本
- hardware/: 硬件安装脚本
Windows 专用脚本(scripts/windows/)
- windows_scripts/: Windows 批处理脚本
使用 Git Submodule 管理独立的 Neovim 配置仓库:
- 基于 Lua 的现代化配置
- lazy.nvim 插件管理器
- LSP 支持、代码补全、语法高亮
- 丰富的 UI 组件和主题
详细说明请参考:dotfiles/nvim/README.md
所有配置通过 chezmoi 管理,工作流程:
# 1. 编辑配置文件
chezmoi edit ~/.zshrc
# 2. 查看变更
chezmoi diff ~/.zshrc
# 3. 应用配置
chezmoi apply ~/.zshrc
# 4. 提交到仓库
git add .chezmoi
git commit -m "Update zsh config"
git pushinstall.sh 脚本提供智能功能:
- 配置对比机制:自动检测模板生成的配置与本地配置是否一致
- 软件安装检查:已安装的软件跳过,未安装的软件自动安装
- 详细日志输出:显示每个步骤的详细状态和进度
Neovim 配置使用 Git Submodule 管理:
# 初始化 submodule
git submodule update --init dotfiles/nvim
# 更新 submodule
git submodule update --remote dotfiles/nvim- 编码:UTF-8(无 BOM)
- 换行符:LF(
\n),Windows 脚本(.bat,.ps1,.cmd)使用 CRLF - 配置文件:已配置
.gitattributes、.editorconfig和.vscode/settings.json
# 检查所有文件的编码和换行符
./scripts/common/utils/check_and_fix_encoding.sh
# 规范化换行符为 LF
./scripts/common/utils/ensure_lf_line_endings.sh详细说明请参考:ENCODING_AND_LINE_ENDINGS.md
- 权限要求:某些脚本需要 root 权限(使用
sudo) - 平台特定:部分脚本仅适用于特定操作系统
- 备份:修改系统配置文件前,建议先备份原文件
- Git Submodule:首次克隆后需要初始化 submodule
- 代理配置:安装脚本支持通过
PROXY环境变量配置代理
- chezmoi 官方文档
- Neovim 官方文档
- AGENTS.md - 代码代理开发指南
- 部署流程指南 - Windows 和 Arch Linux 之间的配置部署流程
- ✅ 优化打印信息内容:统一所有脚本使用 log_info/log_success/log_warning/log_error 函数
- ✅ 删除无用文件:清理临时日志文件和测试文件
- ✅ 更新 .gitignore:确保所有临时文件、日志文件、备份文件都被忽略
- ✅ 更新文档:确保 README.md、project_structure.md 等文档与代码实现一致
- ✅ 统一配置管理:所有配置文件转换为 Chezmoi 模板格式
- ✅ 创建配置审计脚本:
scripts/chezmoi/audit_configs.sh - ✅ 创建统一配置管理脚本:
scripts/chezmoi/manage_configs.sh - ✅ 改进
install.sh:集成新的配置管理机制 - ✅ 清理冗余文件:删除已转换为模板格式的原配置文件
详见 LICENSE 文件