{ description = "system"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs-stable.url = "nixpkgs/nixos-23.11"; nixpkgs-unstable-small.url = "nixpkgs/nixos-unstable-small"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-hardware.url = "github:networkException/nixos-hardware/apple-t2-init"; mac-brcm-fw = { url = "path:/home/jade/nix-configs/mac-brcm-fw"; flake = false; }; #mms.url = "github:mkaito/nixos-modded-minecraft-servers"; easymacros.url = "git+https://gitlab.com/obsidianical/easymacros.git"; meowsite.url = "git+https://gitlab.com/obsidianical/meowsite.git"; wordsofgod.url = "git+https://gitlab.com/obsidianical/wordsofgod.git"; karton.url = "git+https://gitlab.com/obsidianical/microbin.git"; arion.url = "github:hercules-ci/arion"; gumseite.url = "git+https://gitlab.com/schrottkatze/gum-schulsachen.git"; fenix.url = "github:nix-community/fenix"; }; outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-unstable-small, home-manager, nixos-hardware, mac-brcm-fw, fenix, ... } @ inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; pkgs-stable = nixpkgs-stable.legacyPackages.${system}; pkgs-unstable-small = nixpkgs-unstable-small.legacyPackages.${system}; rs-toolchain = with fenix.packages.${system}; combine [ default.toolchain rust-analyzer ]; rs-platform = pkgs.makeRustPlatform { cargo = rs-toolchain; rustc = rs-toolchain; }; rs-programs = final: prev: { s10e-jrnl = rs-platform.buildRustPackage { pname = "jrnl"; version = "0.0.1"; src = ./programs/jrnl; cargoLock.lockFile = ./programs/jrnl/Cargo.lock; }; }; in { devShells."x86_64-linux".default = pkgs.mkShell { buildInputs = [ (pkgs.haskellPackages.ghcWithPackages (pkgs: with pkgs; [ xmonad xmonad-contrib xmobar statgrab ])) rs-toolchain pkgs.haskell-language-server ]; }; nixosConfigurations = { monosodium-glutamate-g = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs pkgs-unstable-small pkgs-stable rs-programs; }; system = "x86_64-linux"; modules = [ ./hosts/monosodium-glutamate-g/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; home.stateVersion = "${nixosConfig.system.stateVersion}"; }; } ]; }; catbook-j = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs pkgs-unstable-small pkgs-stable rs-programs; }; system = "x86_64-linux"; modules = [ ./hosts/catbook-j/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; home.stateVersion = "22.11"; }; } ]; }; potatobook-g = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs pkgs-unstable-small rs-programs; }; system = "x86_64-linux"; modules = [ "${mac-brcm-fw}" ./hosts/potatobook-g/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; home.stateVersion = "${nixosConfig.system.stateVersion}"; }; } nixos-hardware.nixosModules.apple-t2 ]; }; }; }; }