dotfiles/flake.nix

116 lines
3.1 KiB
Nix

{
description = "Configuration of my systems";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
agenix.url = "github:ryantm/agenix";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils = {
url = "github:numtide/flake-utils";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
yadunut.url = "git+https://git.yadunut.dev/yadunut/nix.git";
};
outputs =
{
nixpkgs,
home-manager,
agenix,
nixvim,
disko,
flake-utils,
yadunut,
...
}@inputs:
{
homeConfigurations = {
"yadunut@yadunut-mbp" =
let
system = "aarch64-darwin";
pkgs = nixpkgs.legacyPackages.${system};
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
};
modules = [ ./yadunut-mbp/home.nix ];
};
"yadunut@yadunut-mba" =
let
system = "aarch64-darwin";
pkgs = nixpkgs.legacyPackages.${system};
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
};
modules = [ ./yadunut-mba/home.nix ];
};
};
nixosConfigurations = {
"penguin" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
disko.nixosModules.disko
agenix.nixosModules.default
./penguin/disko-config.nix
./penguin/configuration.nix
./penguin/hardware-configuration.nix
yadunut.lib.users
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.yadunut = import ./penguin/home.nix;
}
];
};
"falcon-nixos" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./falcon-nixos/configuration.nix
agenix.nixosModules.default
{ _module.args = { inherit inputs; }; }
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.yadunut = import ./falcon-nixos/home.nix;
}
];
};
};
}
// flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
};
in
{
devShells.default = pkgs.mkShell {
buildInputs = [
pkgs.nixd
agenix.packages.${system}.default
];
};
}
);
}