157 lines
4.2 KiB
Nix
157 lines
4.2 KiB
Nix
{
|
|
description = "System config";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
|
|
};
|
|
|
|
outputs = { self, ... }@inputs:
|
|
with inputs;
|
|
let
|
|
|
|
defSystem = systemArch: baseConfig:
|
|
nixpkgs.lib.nixosSystem {
|
|
system = "${systemArch}";
|
|
modules = [
|
|
{ _module.args.inputs = inputs; }
|
|
{ _module.args.self-overlay = self.overlay; }
|
|
({ ... }: {
|
|
imports = builtins.attrValues self.nixosModules ++ [
|
|
{
|
|
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
|
|
nixpkgs.overlays = [ self.overlay ];
|
|
}
|
|
|
|
baseConfig
|
|
home-manager.nixosModules.home-manager
|
|
{ home-manager.useUserPackages = true; }
|
|
];
|
|
|
|
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
|
nix.registry.nixpkgs.flake = nixpkgs;
|
|
})
|
|
];
|
|
};
|
|
|
|
# nixosUsers = [{
|
|
# name = "erwin";
|
|
# groups = [ "wheel" "networkmanager" "video" ];
|
|
# uid = 1000;
|
|
# shell = pkgs.fish;
|
|
# openssh.authorizedKeys.keys = [
|
|
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMNoTcRsAxDwpiIj6nhUXwzSQjtcgKCR0RDlzP57wi0W erwin@horusvr-ws2"
|
|
# ];
|
|
# }];
|
|
|
|
in
|
|
{
|
|
# homeManagerConfigurations = {
|
|
# erwin = user.mkHMUser {
|
|
# userConfig = {
|
|
# git.enable = true;
|
|
# ssh.enable = true;
|
|
# applications.enable = true;
|
|
# gpg.enable = true;
|
|
# fish.enable = true;
|
|
# sway.enable = true;
|
|
# };
|
|
# username = "erwin";
|
|
# };
|
|
# };
|
|
|
|
overlay = final: prev: (import ./overlays) final prev;
|
|
# overlay = final: prev: {
|
|
# unstable = import nixpkgs {
|
|
# system = "x86_64-linux";
|
|
# config.allowUnfree = true;
|
|
# };
|
|
# };
|
|
|
|
nixosModules = builtins.listToAttrs (map
|
|
(x: {
|
|
name = x;
|
|
value = import (./modules + "/${x}");
|
|
})
|
|
(builtins.attrNames (builtins.readDir ./modules)));
|
|
|
|
nixosConfigurations = {
|
|
# vm1 = host.mkHost {
|
|
# name = "vm1";
|
|
# NICs = [ "enp1s0" ];
|
|
# kernelPackage = pkgs.linuxPackages;
|
|
# initrdMods = [ "ahci" "xhci_pci" "sr_mod" ];
|
|
# kernelMods = [ "kvm-amd" ];
|
|
# kernelParams = [ ];
|
|
# systemConfig = vm1UefiConfig;
|
|
|
|
# users = nixosUsers;
|
|
|
|
# cpuCores = 6;
|
|
# };
|
|
|
|
# vm2 = host.mkHost {
|
|
# name = "vm2";
|
|
# NICs = [ "enp1s0" ];
|
|
# kernelPackage = pkgs.linuxPackages;
|
|
# initrdMods = [ "ahci" "xhci_pci" "sr_mod" ];
|
|
# kernelMods = [ "kvm-amd" ];
|
|
# kernelParams = [ ];
|
|
# systemConfig = vm2Config;
|
|
|
|
# users = nixosUsers;
|
|
|
|
# cpuCores = 4;
|
|
# };
|
|
vm1 = defSystem "x86_64-linux" {
|
|
imports = [
|
|
(import (./machines/vm1/configuration.nix) { inherit self; })
|
|
];
|
|
};
|
|
vm2 = defSystem "x86_64-linux" {
|
|
imports = [
|
|
(import (./machines/vm2/configuration.nix) { inherit self; })
|
|
];
|
|
};
|
|
|
|
# loki = defSystem "x86_64-linux" {
|
|
# imports = [
|
|
# (import (./machines/loki/configuration.nix) { inherit self; })
|
|
# ];
|
|
# };
|
|
|
|
};
|
|
} //
|
|
(flake-utils.lib.eachSystem [ "x86_64-linux" ])
|
|
(system:
|
|
let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [ self.overlay ];
|
|
config = {
|
|
allowUnsupportedSystem = true;
|
|
allowUnfree = true;
|
|
};
|
|
};
|
|
in
|
|
rec {
|
|
packages = flake-utils.lib.flattenTree {
|
|
rofi-wayland = pkgs.rofi-wayland;
|
|
pamedia = pkgs.pamedia;
|
|
};
|
|
|
|
apps = {
|
|
rofi-wayland = flake-utils.lib.mkApp { drv = packages.rofi-wayland; };
|
|
pamedia = flake-utils.lib.mkApp { drv = packages.pamedia; };
|
|
};
|
|
}
|
|
);
|
|
}
|