{ description = "My NixOs dotfiles"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; 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, flake-utils, nix-on-droid, ... }@inputs: flake-utils.lib.eachDefaultSystem ( system: let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { devShells.default = let stdenvMinimal = pkgs.stdenvNoCC.override { cc = null; preHook = ""; allowedRequisites = null; initialPath = pkgs.lib.filter ( a: pkgs.lib.hasPrefix "coreutils" a.name ) pkgs.stdenvNoCC.initialPath; extraNativeBuildInputs = [ ]; }; minimalMkShell = pkgs.mkShell.override { stdenv = stdenvMinimal; }; in minimalMkShell { 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 = ./.; }; }; }; }