110 lines
3.1 KiB
Nix
110 lines
3.1 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/ce01daebf8489ba97bd1609d185ea276efdeb121";
|
|
nixos-unstable.url = "github:NixOS/nixpkgs/5b09dc45f24cf32316283e62aec81ffee3c3e376";
|
|
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
|
local-unstable.url = "path:///home/giulio/dev/nixpkgs";
|
|
pepeflake.url = "git+https://git.giugl.io/peperunas/pepeflake";
|
|
agenix-flake.url = "github:ryantm/agenix";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-25.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nvidia-patch = {
|
|
url = "github:icewind1991/nvidia-patch-nixos";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
langtool-ngrams.url = "github:peperunas/nix-languagetool-ngram";
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, nixpkgs
|
|
, nixos-unstable
|
|
, nixpkgs-master
|
|
, local-unstable
|
|
, home-manager
|
|
, nvidia-patch
|
|
, agenix-flake
|
|
, pepeflake
|
|
, langtool-ngrams
|
|
}:
|
|
let
|
|
sysLinuxX64 = "x86_64-linux";
|
|
sysDarwin = "aarch64-darwin";
|
|
sysLinuxAarch = "aarch64-linux";
|
|
forAllSystems = nixpkgs.lib.genAttrs [ sysLinuxX64 sysLinuxAarch sysDarwin ];
|
|
|
|
mkSystem = (import ./lib/systems.nix {
|
|
inherit nixpkgs;
|
|
inputs = {
|
|
inherit nixos-unstable nixpkgs-master local-unstable
|
|
agenix-flake pepeflake langtool-ngrams
|
|
nvidia-patch home-manager;
|
|
};
|
|
}).mkSystem;
|
|
|
|
linuxX64Cuda = mkSystem { system = sysLinuxX64; cudaSupport = true; };
|
|
linuxAarch = mkSystem { system = sysLinuxAarch; };
|
|
darwin = mkSystem { system = sysDarwin; };
|
|
in
|
|
{
|
|
nixosConfigurations = {
|
|
architect = linuxX64Cuda.utils.host.mkHost {
|
|
name = "architect";
|
|
users = [{
|
|
user = "giulio";
|
|
roles = [ ];
|
|
}];
|
|
imports = [
|
|
agenix-flake.nixosModules.default
|
|
];
|
|
};
|
|
};
|
|
|
|
homeConfigurations = {
|
|
giulioMac = darwin.utils.user.mkHMUser {
|
|
name = "giulio";
|
|
roles = [ "ssh" ];
|
|
};
|
|
gdepasqualeMac = darwin.utils.user.mkHMUser {
|
|
name = "gdepasquale";
|
|
roles = [ "ssh" ];
|
|
};
|
|
giulioAarch = linuxAarch.utils.user.mkHMUser {
|
|
name = "giulio";
|
|
roles = [ "ssh" ];
|
|
};
|
|
giulioX64 = linuxX64Cuda.utils.user.mkHMUser {
|
|
name = "giulio";
|
|
roles = [ "ssh" "go" ];
|
|
};
|
|
giulioX64NoSSH = linuxX64Cuda.utils.user.mkHMUser {
|
|
name = "giulio";
|
|
roles = [ "go" ];
|
|
};
|
|
gdepasqualeX64 = linuxX64Cuda.utils.user.mkHMUser {
|
|
name = "gdepasquale";
|
|
roles = [ "ssh" "go" ];
|
|
};
|
|
};
|
|
|
|
packages = forAllSystems (system:
|
|
let pkgs = nixpkgs.legacyPackages.${system}; in rec {
|
|
default = update;
|
|
|
|
update = pkgs.callPackage ./update.nix { };
|
|
});
|
|
|
|
|
|
|
|
defaultTemplate = self.templates.basicShell;
|
|
templates = {
|
|
basicShell = {
|
|
path = ./templates/basicShell;
|
|
description = "A barebone shell with custom defined packages";
|
|
};
|
|
};
|
|
};
|
|
}
|