| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- {
- description = "Nix Dotfiles with flake";
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
- home-manager = {
- url = "github:nix-community/home-manager/release-26.05";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.7.0";
- dms = {
- url = "github:AvengeMedia/DankMaterialShell/stable";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- vm-curator.url = "github:mroboff/vm-curator";
- };
- outputs =
- {
- self,
- nix-flatpak,
- vm-curator,
- ...
- }@inputs:
- let
- hosts = import ./config/hosts.nix;
- mkHomeConfigurations =
- {
- host,
- nixpkgs,
- home-manager,
- modules ? [ ],
- }:
- home-manager.lib.homeManagerConfiguration {
- pkgs = import nixpkgs {
- system = host.arch;
- config = {
- allowUnfree = true;
- };
- };
- extraSpecialArgs = { inherit inputs; };
- modules = [
- ./hosts/${host.dir}/home.nix
- #mango.homeManagerModules.mango
- ] ++ modules;
- };
- mkNixOSConfigurations =
- {
- host,
- nixpkgs,
- home-manager,
- modules ? [ ],
- overlays ? [],
- }:
- nixpkgs.lib.nixosSystem {
- system = host.arch;
- specialArgs = {
- inherit inputs;
- };
- modules = [
- nix-flatpak.nixosModules.nix-flatpak
- ./hosts/${host.dir}/configuration.nix
- { nixpkgs.overlays = overlays; }
- home-manager.nixosModules.home-manager
- {
- home-manager.extraSpecialArgs = { inherit inputs; };
- home-manager.useGlobalPkgs = true;
- home-manager.users."${host.user}" = import ./hosts/${host.dir}/home.nix;
- }
- ] ++ modules;
- };
- mkISOConfiguration = # Build with: nix build .#nixosConfigurations.<hostname>-iso.config.system.build.isoImage
- {
- host,
- nixpkgs,
- }:
- nixpkgs.lib.nixosSystem {
- system = host.arch;
- modules = [
- ./hosts/${host.dir}/iso.nix
- { networking.hostName = "${host.hostname}-iso"; }
- ];
- };
- in
- {
- nixosConfigurations."${hosts.nixstation.hostname}" = mkNixOSConfigurations {
- host = hosts.nixstation;
- nixpkgs = inputs.nixpkgs;
- home-manager = inputs.home-manager;
- };
- nixosConfigurations."${hosts.dellaptop.hostname}" = mkNixOSConfigurations {
- host = hosts.dellaptop;
- nixpkgs = inputs.nixpkgs;
- home-manager = inputs.home-manager;
- };
- nixosConfigurations."${hosts.ideapad.hostname}" = mkNixOSConfigurations {
- host = hosts.ideapad;
- nixpkgs = inputs.nixpkgs;
- home-manager = inputs.home-manager;
- };
- nixosConfigurations."${hosts.nixstation.hostname}-iso" = mkISOConfiguration {
- host = hosts.nixstation;
- nixpkgs = inputs.nixpkgs;
- };
- nixosConfigurations."${hosts.dellaptop.hostname}-iso" = mkISOConfiguration {
- host = hosts.dellaptop;
- nixpkgs = inputs.nixpkgs;
- };
- nixosConfigurations."${hosts.ideapad.hostname}-iso" = mkISOConfiguration {
- host = hosts.ideapad;
- nixpkgs = inputs.nixpkgs;
- };
- homeConfigurations."${hosts.nixstation.user}@${hosts.nixstation.hostname}" = mkHomeConfigurations {
- host = hosts.nixstation;
- nixpkgs = inputs.nixpkgs;
- home-manager = inputs.home-manager;
- };
- homeConfigurations."${hosts.dellaptop.user}@${hosts.dellaptop.hostname}" = mkHomeConfigurations {
- host = hosts.dellaptop;
- nixpkgs = inputs.nixpkgs;
- home-manager = inputs.home-manager;
- };
- };
- }
|