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)
80 lines
2.1 KiB
Nix
80 lines
2.1 KiB
Nix
{
|
|
description = "Multi-platform Nix configuration — NixOS / nix-darwin / standalone Home Manager";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
nixos-wsl = {
|
|
url = "github:nix-community/NixOS-WSL";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-darwin = {
|
|
url = "github:nix-darwin/nix-darwin";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
catppuccin = {
|
|
url = "github:catppuccin/nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
...
|
|
}@inputs:
|
|
let
|
|
mylib = import ./lib { inherit inputs; };
|
|
in
|
|
{
|
|
# ── NixOS hosts ────────────────────────────────────
|
|
nixosConfigurations = {
|
|
wsl = mylib.mkNixos {
|
|
hostname = "nixos-wsl";
|
|
system = "x86_64-linux";
|
|
username = "dev";
|
|
extraModules = [
|
|
inputs.nixos-wsl.nixosModules.default
|
|
./hosts/wsl
|
|
];
|
|
};
|
|
|
|
bare = mylib.mkNixos {
|
|
hostname = "nixos";
|
|
system = "x86_64-linux";
|
|
username = "dev";
|
|
extraModules = [ ./hosts/bare ];
|
|
};
|
|
};
|
|
|
|
# ── macOS hosts (uncomment when ready) ─────────────
|
|
# darwinConfigurations = {
|
|
# macbook = mylib.mkDarwin {
|
|
# hostname = "macbook";
|
|
# system = "aarch64-darwin";
|
|
# username = "imbytecat";
|
|
# extraModules = [ ./hosts/macbook ];
|
|
# };
|
|
# };
|
|
|
|
# ── Standalone Home Manager (non-NixOS / non-Darwin) ─
|
|
homeConfigurations = {
|
|
"dev" = mylib.mkHome {
|
|
system = "x86_64-linux";
|
|
username = "dev";
|
|
};
|
|
};
|
|
|
|
# ── Overlays ───────────────────────────────────────
|
|
overlays.default = import ./overlays;
|
|
};
|
|
}
|