Files
nix-config/flake.nix
T
imbytecat e92c7aee31 refactor: 重构为多平台多用户架构,全面提升终端体验
- 新增 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)
2026-04-03 19:54:17 +08:00

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;
};
}