3个配置项,让NixOS上70多个应用统一换上Catppuccin配色
【免费下载链接】nix❄️ Soothing pastel theme for Nix项目地址: https://gitcode.com/gh_mirrors/nix1/nix
你有没有遇到过这种割裂感:系统托盘是默认灰,终端是别人给的配色,编辑器又暗一个色阶。Catppuccin Nix模块就是来解决这件事的——它把那套低饱和、柔和的 pastel 配色做成 NixOS 和 home-manager 模块,一行enable就能让终端、编辑器、浏览器、窗口管理器共用同一套颜色。下面按"装好、选色、定制"三步走,每步都只有最小必要的配置。
1️⃣ 先把模块装进 flake
模块仓库支持 Linux 和 macOS(Darwin)两套系统,要求 NixOS/home-manager 26.05 及以上。仓库提供main分支(跟随 unstable)和release-x.x分支(跟随最新稳定版),用稳定版 Nix 就从后者拉取,避免版本不匹配。
git clone https://gitcode.com/gh_mirrors/nix1/nix在你的flake.nix里登记这个输入(以已克隆到本地的路径为例,也可以用 tarball 地址):
{ inputs = { nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"; catppuccin.url = "path:/path/to/nix"; }; }加载 NixOS 或 home-manager 模块
接着把模块挂进modules数组。NixOS 集成 home-manager 的话,两边各挂一次;独立使用 home-manager 就只挂homeModules。
modules = [ catppuccin.nixosModules.catppuccin { home-manager.users.alice = { imports = [ catppuccin.homeModules.catppuccin ]; }; } ];挂好之后,所有主题化端口默认就会随全局开关联动,不用一个个手动开启。以后想关掉某个应用,或者某个应用没生效,回这里看第 4 节就行。
选对颜色:4种flavor加14种accent
模块最核心的两个选项是flavor(明暗基调)和accent(强调色)。四套 flavor 可以理解为同一杯咖啡的不同浓度:
四套 flavor 横向对比:Latte、Frappé、Macchiato、Mocha
Mocha:对比最强的深色基调,夜间使用的首选
| Flavor | 一句话定位 | 适合场景 |
|---|---|---|
| latte | 奶白色亮色 | 白天、明亮环境 |
| frappe | 灰调中深 | 长时间盯屏,不刺眼 |
| macchiato | 深蓝灰深色 | 多数夜间桌面 |
| mocha | 近纯黑深色 | OLED 屏、高对比党 |
accent 有 14 个可选,比如 blue、mauve、pink、green,默认是 mauve。全局写法就两行:
{ catppuccin = { flavor = "macchiato"; accent = "blue"; }; }改完nixos-rebuild switch(或home-manager switch)重建,所有已启用的应用会一起换色,不需要逐个重启。
一套配置覆盖70多个应用
模块按应用拆成了独立文件,但对你来说只有两层需要关心:
- NixOS 层:系统级组件,比如 SDDM 登录界面、GRUB、Plymouth 开机动画、fcitx5 输入法、gitea 等,随
nixosModules生效。 - home-manager 层:用户级应用,数量占大头——终端(Alacritty、Kitty、WezTerm、Fish)、编辑器(Neovim、Helix、VS Code、Zed)、窗口管理器(Hyprland、Sway)、工具(lazygit、gitui、delta、yazi、tmux)等等,随
homeModules生效。
你不需要背诵这份清单。catppuccin.enable打开后,凡是装了对应程序、模块能检测到的,都会自动套上主题。想知道某个程序支不支持,最直接的办法是nix eval一下catppuccin.<程序名>.enable这个选项是否存在,或者翻仓库里的 官方贡献指南 了解新增适配的流程。
Frappé 下的桌面效果:终端、窗口管理器与面板共用同一套色板
给某个应用单独指定配色
全局统一是默认状态,但模块允许"局部反叛"。每个应用选项都有自己的enable和flavor,默认值继承全局,你只在想不同的地方覆盖:
{ catppuccin = { alacritty.flavor = "frappe"; # 终端单独用中深色 waybar.flavor = "mocha"; # 面板保持深色 }; }另外一部分端口还支持单独指定accent(默认不开,由模块声明,常见的有 waybar、wezterm、hyprland、lazygit、firefox 等)。写配置时拿不准就查nix show-config输出,或者在模块源码里搜accentSupport。
Macchiato 下的完整桌面:编辑器、终端与状态栏颜色一一对应
如果哪天想动更深的颜色,比如把 mocha 的底色换成纯黑做 OLED 优化,模块把全部取色源头暴露在了catppuccin.sources里,可以只替换一个端口的源而不牵连其他,进阶做法见 官方定制文档。
收尾:先跑通,再细调
先只写enable、flavor、accent三个选项做一次重建,确认桌面整体变色,再逐个打开你常用的应用。跑通之后,去把第 5 节的单应用覆盖玩一遍,最后看看贡献指南,说不定下一个适配就是你写的。
【免费下载链接】nix❄️ Soothing pastel theme for Nix项目地址: https://gitcode.com/gh_mirrors/nix1/nix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考