{ description = "System config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-21.05"; nixpkgs-unstable.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 = { nixpkgs, home-manager, ... }@inputs: let defSystem = systemArch: baseConfig: nixpkgs.lib.nixosSystem { system = "${systemArch}"; modules = [ { _module.args.inputs = inputs; } { _module.args.self-overlay = self.overlay; } { _module.args.overlay-unstable = self.overlay-unstable; } ({ ... }: { imports = builtins.attrValues self.nixosModules ++ [ { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; nixpkgs.overlays = [ self.overlay self.overlay-unstable ]; } 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-unstable = final: prev: { unstable = import nixpkgs-unstable { 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; # }; 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; }; apps = { rofi-wayland = flake-utils.lib.mkApp { drv = packages.rofi-wayland; }; }; } ); }