summary refs log blame commit diff stats
path: root/flake.nix
blob: 97560f3e7187395a8c84258a296c34a253b22696 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
 
                                                
              
            
                                                     
                                                         
                    
                                                              
                                         
                          


                                                     














































                                                                              













                                                                 







                                                              
                                                 
      
    
      

             
                 
                      
                  
            
                  
               
       
                
                                              
 
                                         
      
                                                              
                     
                          
                 
                                          

                                              


                                             
                                                                                                                      
            
         
      







                               
    
{
  description = "My Nixos system configuration";
  # inputs {{{
  inputs = {
    nixpkgs.url = "github:NixOs/nixpkgs/nixos-23.05";
    unstable.url = "github:NixOs/nixpkgs/nixos-unstable";
    home-manager = {
      url = "github:nix-community/home-manager/release-23.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # inputs for following
    lanzaboote = {
      url = "github:nix-community/lanzaboote/v0.3.0";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    systems = {
      url = "github:nix-systems/x86_64-linux"; # only evaluate for this system
    };
    flake-compat = {
      url = "github:edolstra/flake-compat";
      flake = false;
    };
    crane = {
      url = "github:ipetkov/crane";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-compat.follows = "flake-compat";
        flake-utils.follows = "flake-utils";
        rust-overlay.follows = "rust-overlay";
      };
    };
    flake-utils = {
      url = "github:numtide/flake-utils";
      inputs = {
        systems.follows = "systems";
      };
    };
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
      };
    };

    shell_library = {
      url = "git+https://codeberg.org/soispha/shell_library.git";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
        systems.follows = "systems";
      };
    };
    river_init_lesser = {
      url = "git+https://codeberg.org/soispha/river_keymap_init.git";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        crane.follows = "crane";
        flake-utils.follows = "flake-utils";
        rust-overlay.follows = "rust-overlay";
        flake-compat.follows = "flake-compat";
      };
    };
    yambar_cpu = {
      url = "git+https://codeberg.org/soispha/yambar_cpu.git";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        crane.follows = "crane";
        flake-utils.follows = "flake-utils";
      };
    };
    yambar_memory = {
      url = "git+https://codeberg.org/soispha/yambar_memory.git";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
      };
    };
    #grades = {
    #     url = "git+https://codeberg.org/soispha/grades.git";
    #     inputs = {
    #       nixpkgs.follows = "unstable";
    #       crane.follows = "crane";
    #       flake-utils.follows = "flake-utils";
    #       rust-overlay.follows = "rust-overlay";
    #     };
    #   };
    prismlauncher = {
      url = "github:PrismLauncher/PrismLauncher";
    };
  };
  #}}}
  outputs = {
    self,
    nixpkgs,
    home-manager,
    shell_library,
    river_init_lesser,
    yambar_cpu,
    yambar_memory,
    #grades,
    prismlauncher,
    lanzaboote,
    ...
  } @ attrs: let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages."${system}";

    sysLib = shell_library.lib.${system};
  in {
    nixosConfigurations.thinklappi = nixpkgs.lib.nixosSystem {
      inherit system;
      specialArgs = attrs;
      modules = [
        lanzaboote.nixosModules.lanzaboote
        ./hosts/thinklappi
        home-manager.nixosModules.home-manager
        {
          home-manager = {
            useGlobalPkgs = true;
            useUserPackages = true;
            users.sils = import ./users/sils;
            extraSpecialArgs = {inherit pkgs system sysLib river_init_lesser yambar_cpu yambar_memory prismlauncher;};
          };
        }
      ];
    };
    devShells."${system}" = {
      default = pkgs.mkShell {
        packages = with pkgs; [
          nil
          statix
          alejandra
        ];
      };
    };
  };
}