nixos-dots

nixos dots
git clone git://popovic.xyz/nixos-dots.git
Log | Files | Refs

flake.nix (3501B)


      1 {
      2   description = "NixOS";
      3 
      4   inputs = {
      5     nixpkgs_stable.url = "nixpkgs/nixos-25.11";
      6     nixpkgs.url = "nixpkgs/nixos-unstable";
      7     nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
      8     nixos-hardware.url = "github:NixOS/nixos-hardware";
      9     betterfox.url =  "github:HeitorAugustoLN/betterfox-nix";
     10     sops-nix = {
     11         url = "github:Mic92/sops-nix";
     12         inputs.nixpkgs.follows = "nixpkgs";
     13     };
     14     home-manager = {
     15       url = "github:nix-community/home-manager";
     16       inputs.nixpkgs.follows = "nixpkgs";
     17     };
     18     disko = {
     19       url = "github:nix-community/disko";
     20       inputs.nixpkgs.follows = "nixpkgs";
     21     };
     22   };
     23   outputs = {
     24     self,
     25     nixpkgs_stable,
     26     nixpkgs,
     27     disko,
     28     home-manager,
     29     nixos-hardware,
     30     sops-nix,
     31     betterfox,
     32     ...
     33     } @inputs: let
     34     system = "x86_64-linux";
     35     pkgs = nixpkgs.legacyPackages.${system};
     36   in {
     37     nixosConfigurations = {
     38       nixos-frame = let
     39         hostName = "nixos-frame";
     40       in nixpkgs.lib.nixosSystem {
     41         inherit system;
     42         specialArgs = {
     43           inherit inputs;
     44           inherit hostName;
     45         };
     46         modules = [
     47           nixos-hardware.nixosModules.framework-13-7040-amd
     48           home-manager.nixosModules.home-manager
     49           sops-nix.nixosModules.sops
     50           ./system/host/host-frame.nix
     51           ./system/hardware/hardware-frame.nix
     52           {
     53             home-manager = {
     54               useGlobalPkgs = true;
     55               useUserPackages = true;
     56               extraSpecialArgs = {
     57                 inherit system;
     58                 inherit inputs;
     59                 standalone = false;
     60               };
     61               users.mika = import ./users/mika.nix;
     62             };
     63           }
     64         ];
     65       };
     66       nixos-vm = let
     67         hostName = "nixos-vm";
     68       in nixpkgs.lib.nixosSystem {
     69         inherit system;
     70         specialArgs = {
     71           inherit inputs;
     72           inherit hostName;
     73         };
     74         modules = [
     75           home-manager.nixosModules.home-manager
     76           ./system/host/host-frame.nix
     77           ./system/hardware/hardware-vm.nix
     78           {
     79             home-manager = {
     80               useGlobalPkgs = true;
     81               useUserPackages = true;
     82               extraSpecialArgs = {
     83                 inherit system;
     84                 inherit inputs;
     85                 standalone = false;
     86               };
     87               users.mika = import ./users/mika.nix;
     88             };
     89           }
     90         ];
     91       };
     92       nixos-server = let
     93         hostName = "nixos-server";
     94       in nixpkgs_stable.lib.nixosSystem {
     95         inherit system;
     96         specialArgs = {
     97           inherit inputs;
     98           inherit hostName;
     99         };
    100         modules = [
    101           home-manager.nixosModules.home-manager
    102           ./system/host/host-server.nix
    103           ./system/hardware/hardware-vm.nix
    104           {
    105             home-manager = {
    106               useGlobalPkgs = true;
    107               useUserPackages = true;
    108               extraSpecialArgs = {
    109                 inherit system;
    110                 inherit inputs;
    111                 standalone = false;
    112               };
    113               users.r2d2 = import ./users/r2d2.nix;
    114             };
    115           }
    116         ];
    117       };
    118     };
    119     homeConfigurations = {
    120       mika = home-manager.lib.homeManagerConfiguration {
    121         inherit pkgs;
    122         modules = [ ./users/mika.nix ];
    123         extraSpecialArgs = {
    124           inherit system;
    125           inherit inputs;
    126           standalone = true;
    127         };
    128       };
    129     };
    130 
    131   };
    132 }