{ description = "system"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs-stable.url = "nixpkgs/nixos-23.11"; nixpkgs-unstable-small.url = "nixpkgs/nixos-unstable-small"; helix-inline-diags = { url = "github:helix-editor/helix"; inputs = { crane.follows = "crane"; nixpkgs.follows = "nixpkgs"; }; }; lix-module = { url = "git+https://git.lix.systems/lix-project/nixos-module"; inputs.nixpkgs.follows = "nixpkgs"; }; 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; }; crane = { url = "github:ipetkov/crane"; }; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-unstable-small, helix-inline-diags, lix-module, home-manager, nixos-hardware, mac-brcm-fw, fenix, crane, ... } @ inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; pkgs-stable = nixpkgs-stable.legacyPackages.${system}; pkgs-unstable-small = nixpkgs-unstable-small.legacyPackages.${system}; crane-lib = crane.mkLib nixpkgs.legacyPackages.${system}; rs-toolchain = with fenix.packages.${system}; combine [ complete.toolchain ]; # 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; # }; s10e-jrnl = crane-lib.buildPackage { pname = "s10e-bs"; version = "0.0.1"; src = crane-lib.cleanCargoSource (crane-lib.path ./.); }; }; 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 lix-module helix-inline-diags; }; 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.extraSpecialArgs = { inherit pkgs-unstable-small pkgs-stable; }; 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 lix-module helix-inline-diags; }; 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.extraSpecialArgs = { inherit pkgs-unstable-small pkgs-stable; }; 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 lix-module helix-inline-diags; }; 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.extraSpecialArgs = { inherit pkgs-unstable-small pkgs-stable; }; home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; home.stateVersion = "${nixosConfig.system.stateVersion}"; }; } nixos-hardware.nixosModules.apple-t2 ]; }; }; }; }