{ description = "My various NixOs configurations"; inputs = { nixpkgs.url = "github:NixOs/nixpkgs/nixos-23.05"; home-manager.url = "github:nix-community/home-manager/release-23.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; agda.url = "github:agda/agda/v2.6.4"; agda.inputs.nixpkgs.follows = "nixpkgs"; cornelis.url = "github:isovector/cornelis"; cornelis.inputs.agda.follows = "agda"; }; outputs = { self, nixpkgs, home-manager, agda, cornelis }: let nix-config-module = { nix.registry.nixpkgs.flake = nixpkgs; system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev; }; rachel-home-module = ({ pkgs, ... }: let system = pkgs.stdenv.system; in { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.rachel = import ./home/rachel.nix { pkgs = pkgs; agda = agda.packages.${system}.Agda; cornelis = cornelis.packages.${system}.cornelis; cornelis-vim = cornelis.packages.${system}.cornelis-vim; }; }; } ); in { nixosConfigurations.lambda = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ nix-config-module ./lambda/configuration.nix home-manager.nixosModules.home-manager rachel-home-module ]; }; nixosConfigurations.computational = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ nix-config-module ./computational/configuration.nix home-manager.nixosModules.home-manager rachel-home-module ]; }; keyboardLayout.fox = ./shared/fox.xkb; }; }