最近抽空把自己用了一段时间的 macOS dotfiles 整理了一下。 一开始只是想把终端、状态栏、Tmux 、提示符这些东西配得顺眼一点,结果越折腾越多,最后干脆做成了一套可以直接初始化的新配置。
这套东西目前最主要的点就是主题系统: 我把 SketchyBar 、Tmux 、Ghostty 、Starship 的配色尽量统一了,切换主题的时候不用一个个文件去改。
https://slashspace.github.io/dotfiles/
现在支持的主题
目前做了 10 套:
- catppuccin-mocha
- dracula
- gruvbox
- kanagawa-dragon
- matrix
- monokai-pro
- nord
- one-dark
- solarized-dark
- everforest
切换方式也比较直接:
bash
dotfiles theme
会弹一个选择器,当前正在用的主题会标出来,选完之后相关配置会一起更新。
这套配置里有什么
目前大概是这些东西:
- AeroSpace:窗口管理
- SketchyBar:状态栏
- Ghostty:终端
- Neovim + LazyVim:编辑器
- Tmux:终端复用
- Starship:提示符
- Sheldon:插件管理
我自己平时主要就是写代码、开很多终端、来回切项目,所以这套配置的目标不是“炫技”,而是尽量让整个开发环境保持一致,少一点重复配置的麻烦。
目录结构
我现在大致是这么分的:
text
dotfiles/
├── core/ # git / zsh / nvim / tmux 这些跨平台配置
├── modules/ # macOS 专属配置
└── system/ # 安装脚本 + 主题相关逻辑
链接管理用的是 GNU Stow 。 好处是新机器上初始化比较省事,不用手动一项项拷配置文件。
初始化方式
第一次装的时候基本是这样:
bash
git clone <repo-url> ~/dotfiles
cd ~/dotfiles
dotfiles bootstrap
exec zsh
如果只是想体验主题切换,可以直接:
bash
dotfiles theme
做的时候踩的一些坑
这次整理下来,主要费时间的其实不是“写配置”,而是“把各种工具统一起来”。
几个比较明显的问题:
- 每个工具的主题变量都不太一样,统一配色挺烦的。
- 有些配置改完会影响启动速度,所以我尽量拆得清楚一点。
- SketchyBar 、AeroSpace 、Ghostty 这些工具之间有联动,配置顺序得理顺,不然容易出各种小问题。
- 如果终端、状态栏、Tmux 、Starship 风格不一致,整体观感会特别乱。
所以最后效果看起来好像挺整齐,其实中间改了不少次。
目前状态
这套配置还比较偏个人使用,很多地方也是按我自己的工作流在整理。 如果你也在折腾 macOS 开发环境,应该能从里面找到一些可以参考的结构,尤其是主题统一和配置拆分这块。
后面我还会继续补一些零散的东西,比如:
- 更细的主题适配
- 各个模块的拆分整理
- 新机器初始化的稳定性
- 一些常用开发工具的联动
链接
欢迎交流,尤其是如果你也在折腾 macOS + 终端环境这套东西。