71 lines
2.1 KiB
Nix
71 lines
2.1 KiB
Nix
{
|
|
description = "NixOS system configuration";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-23.11";
|
|
agenix.url = "github:ryantm/agenix";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-23.11";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
firefox-gnome-theme = {
|
|
url = "github:rafaelmardojai/firefox-gnome-theme";
|
|
flake = false;
|
|
};
|
|
thunderbird-gnome-theme = {
|
|
url = "github:rafaelmardojai/thunderbird-gnome-theme";
|
|
flake = false;
|
|
};
|
|
wallpapers = {
|
|
url = "git+ssh://git@git.vimium.com/jordan/wallpapers.git?shallow=1";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }:
|
|
let
|
|
nixpkgsForSystem = system: inputs.nixpkgs;
|
|
overlays = [
|
|
agenix.overlays.default
|
|
(import ./overlays/gnome.nix)
|
|
];
|
|
commonModules = [
|
|
agenix.nixosModules.age
|
|
home-manager.nixosModule
|
|
./modules
|
|
];
|
|
nixosSystem = system: name:
|
|
let
|
|
nixpkgs = nixpkgsForSystem system;
|
|
lib = (import nixpkgs { inherit overlays system; }).lib;
|
|
in
|
|
inputs.nixpkgs.lib.nixosSystem {
|
|
inherit lib system;
|
|
specialArgs = { modulesPath = toString (nixpkgs + "/nixos/modules"); inherit inputs; };
|
|
baseModules = import (nixpkgs + "/nixos/modules/module-list.nix");
|
|
modules = commonModules ++ [
|
|
({ config, ... }:
|
|
{
|
|
nixpkgs.pkgs = import nixpkgs {
|
|
inherit overlays system;
|
|
config.allowUnfree = true;
|
|
};
|
|
networking.hostName = name;
|
|
nix = {
|
|
extraOptions = "experimental-features = nix-command flakes";
|
|
};
|
|
})
|
|
./hosts/${name}
|
|
];
|
|
};
|
|
nixosConfigurations = {
|
|
atlas = nixosSystem "x86_64-linux" "atlas";
|
|
eos = nixosSystem "x86_64-linux" "eos";
|
|
helios = nixosSystem "x86_64-linux" "helios";
|
|
odyssey = nixosSystem "x86_64-linux" "odyssey";
|
|
};
|
|
in
|
|
{ inherit nixosConfigurations; };
|
|
}
|
|
|