{ description = "My various NixOs configurations"; inputs = { nixpkgs.url = "github:NixOs/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:NixOs/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; agda.url = "github:agda/agda/v2.6.4.1"; agda.inputs.nixpkgs.follows = "nixpkgs"; cornelis.url = "github:isovector/cornelis/"; cornelis.inputs.nixpkgs.follows = "nixpkgs"; ssbm-nix.url = "github:lytedev/ssbm-nix"; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, agda, cornelis, ssbm-nix }: 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; unstable = import nixpkgs-unstable { system = system; config.allowUnfree = true; }; agda = agda.packages.${system}.Agda; cornelis = cornelis.packages.${system}.cornelis; cornelis-vim = cornelis.packages.${system}.cornelis-vim; slippi-netplay = ssbm-nix.packages.${system}.slippi-netplay; }; }; } ); in { nixosConfigurations.lambda = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ nix-config-module ssbm-nix.nixosModule ./lambda/configuration.nix ./shared/desktop.nix home-manager.nixosModules.home-manager rachel-home-module ]; }; nixosConfigurations.computational = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ nix-config-module ssbm-nix.nixosModule ./computational/configuration.nix ./shared/desktop.nix home-manager.nixosModules.home-manager rachel-home-module ]; }; keyboardLayouts.fox = ./shared/fox.xkb; fonts.sax2nf = import ./shared/sax2nf.nix { pkgs = nixpkgs.legacyPackages.x86_64-linux; }; }; }