{ description = "My NixOs dotfiles"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; futils.url = "git+https://git.sorre.xyz/miranb/futils"; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; sorre-website = { url = "git+https://git.sorre.xyz/miranb/sorre-website.git"; inputs.nixpkgs.follows = "nixpkgs"; }; snippets-ls = { url = "github:quantonganh/snippets-ls"; inputs.nixpkgs.follows = "nixpkgs"; }; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-on-droid = { url = "github:nix-community/nix-on-droid/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; }; outputs = { nixpkgs, futils, nix-on-droid, ... }@inputs: futils.lib.eachSystem ( system: let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { devShells.default = futils.lib.minimalMkShell pkgs { buildInputs = with pkgs; [ git sops # Formatting treefmt nixfmt-rfc-style ]; }; } ) // { nixosConfigurations = let generateNixosConfig = name: _value: { system = "x86_64-linux"; # I don't have any other type of machine yet modules = with inputs; [ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops disko.nixosModules.disko ./share/system/common.nix # This directory has to exist and have a `default.nix` in it, see # `./hosts` directory for examples ./hosts/${name} ]; specialArgs = { inherit inputs; flakeRoot = ./.; }; }; # wrapper around nixpkgs.lib.nixosSystem to enable using it on attrsets generateNixosSystem = _name: value: inputs.nixpkgs.lib.nixosSystem value; hosts = builtins.readDir ./hosts; nixosConfigs = builtins.mapAttrs generateNixosConfig hosts; # If you want to add something to a particular system, do it here before # the `in ...` line in builtins.mapAttrs generateNixosSystem nixosConfigs; nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration { pkgs = import nixpkgs { system = "aarch64-linux"; }; modules = [ ./phone ./share/system/common.nix ]; extraSpecialArgs = { inherit inputs; flakeRoot = ./.; }; }; }; }