Files
athenix/flake.nix
2025-12-29 17:14:25 -05:00

60 lines
1.7 KiB
Nix

{
# ============================================================================
# Flake Entry Point
# ============================================================================
# This file defines the inputs (dependencies) and outputs (configurations)
# for the NixOS systems. It ties together the hardware, software, and user
# configurations into deployable systems.
inputs = {
# Core NixOS package repository (Release 25.11)
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
# Older kernel packages for Surface compatibility if needed
nixpkgs-old-kernel.url = "github:NixOS/nixpkgs/nixos-25.05";
# Home Manager for user environment management
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
# Disko for declarative disk partitioning
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
# Hardware quirks and configurations
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# Neovim configuration
lazyvim-nixvim.url = "github:azuwis/lazyvim-nixvim";
# VS Code server for remote development
vscode-server = {
url = "github:nix-community/nixos-vscode-server";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs@{
self,
nixpkgs,
nixpkgs-old-kernel,
home-manager,
disko,
lazyvim-nixvim,
nixos-hardware,
vscode-server,
...
}:
{
# Formatter for 'nix fmt'
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
# Generate NixOS configurations from hosts/default.nix
nixosConfigurations = import ./hosts { inherit inputs; };
};
}