分享一下我的 macOS dotfiles:一键切主题

最近抽空把自己用了一段时间的 macOS dotfiles 整理了一下。 一开始只是想把终端、状态栏、Tmux 、提示符这些东西配得顺眼一点,结果越折腾越多,最后干脆做成了一套可以直接初始化的新配置。 这套东西目前最主要的点就是主题系统: 我把 SketchyBar 、Tmux 、Ghostty 、...
分享一下我的 macOS dotfiles:一键切主题
分享一下我的 macOS dotfiles:一键切主题

最近抽空把自己用了一段时间的 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 + 终端环境这套东西。

来源: V2EX - 技术查看原文