{ description = "Michael Thomas's NixOS configuration"; inputs = { nixpkgs.url = "nixpkgs/nixos-24.11"; unstable.url = "nixpkgs/nixos-unstable"; master.url = "github:NixOS/nixpkgs"; nur.url = "github:nix-community/NUR"; home-manager = { url = "github:rycee/home-manager/release-24.11"; inputs = { nixpkgs.follows = "nixpkgs"; }; }; darwin = { url = "github:lnl7/nix-darwin/nix-darwin-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; utils.url = "github:numtide/flake-utils"; flake-parts.url = "github:hercules-ci/flake-parts"; treefmt-nix.url = "github:numtide/treefmt-nix"; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "unstable"; }; rust-overlay.url = "github:oxalica/rust-overlay"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; ags.url = "github:Aylur/ags"; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} { flake = { overlays = import ./overlays {inherit inputs;}; }; systems = [ "aarch64-darwin" "aarch64-linux" "x86_64-linux" ]; imports = [./flakes]; }; }