e92c7aee31
- 新增 lib/ 辅助函数(mkNixos/mkDarwin/mkHome),消除硬编码 - 拆分 modules/ 为 nixos/darwin/shared 三层,支持跨平台共享 - 重构 home/ 为 shell/dev/theme 子模块,工具全部迁入用户级 - 深度配置 Tmux/FZF/Atuin/Bat/Eza/Btop/Lazygit/Starship - 添加 Catppuccin Mocha 统一主题、Nerd Fonts 声明式管理 - 新增 homeConfigurations 输出,支持非 NixOS 系统直装 - 新增 nix-darwin 输入,预留 macOS 扩展路径 - 新增 overlays/ 和 pkgs/ 自定义包基础设施 - 修正 nix-darwin URL(LnL7 → nix-darwin org)
87 lines
2.0 KiB
Nix
87 lines
2.0 KiB
Nix
{ inputs }:
|
|
|
|
let
|
|
inherit (inputs.nixpkgs) lib;
|
|
|
|
# Shared home-manager configuration block
|
|
homeManagerConfig = username: {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
extraSpecialArgs = {
|
|
inherit inputs username;
|
|
};
|
|
users.${username} = import ../home;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
# ── NixOS host builder ──────────────────────────────
|
|
mkNixos =
|
|
{
|
|
hostname,
|
|
system,
|
|
username,
|
|
extraModules ? [ ],
|
|
}:
|
|
lib.nixosSystem {
|
|
inherit system;
|
|
specialArgs = {
|
|
inherit inputs hostname username;
|
|
};
|
|
modules =
|
|
[
|
|
../modules/shared
|
|
../modules/nixos
|
|
inputs.home-manager.nixosModules.home-manager
|
|
inputs.catppuccin.nixosModules.catppuccin
|
|
(homeManagerConfig username)
|
|
{ networking.hostName = hostname; }
|
|
]
|
|
++ extraModules;
|
|
};
|
|
|
|
# ── nix-darwin host builder ─────────────────────────
|
|
mkDarwin =
|
|
{
|
|
hostname,
|
|
system,
|
|
username,
|
|
extraModules ? [ ],
|
|
}:
|
|
inputs.nix-darwin.lib.darwinSystem {
|
|
inherit system;
|
|
specialArgs = {
|
|
inherit inputs hostname username;
|
|
};
|
|
modules =
|
|
[
|
|
../modules/shared
|
|
../modules/darwin
|
|
inputs.home-manager.darwinModules.home-manager
|
|
inputs.catppuccin.nixosModules.catppuccin
|
|
(homeManagerConfig username)
|
|
{ networking.hostName = hostname; }
|
|
]
|
|
++ extraModules;
|
|
};
|
|
|
|
# ── Standalone Home Manager (no NixOS / no Darwin) ──
|
|
mkHome =
|
|
{
|
|
system,
|
|
username,
|
|
}:
|
|
inputs.home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import inputs.nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
};
|
|
extraSpecialArgs = {
|
|
inherit inputs username;
|
|
hostname = "standalone";
|
|
};
|
|
modules = [ ../home ];
|
|
};
|
|
}
|