diff --git a/example/configuration.nix b/example/configuration.nix new file mode 100644 index 00000000..18a76976 --- /dev/null +++ b/example/configuration.nix @@ -0,0 +1,43 @@ +{ nix-config, pkgs, ... }: + +let + inherit (builtins) attrValues; +in +{ + imports = attrValues { + inherit (nix-config.nixosModules) system shell; + + customConfig = { + modules.system.username = "demo"; + }; + }; + + home-manager.sharedModules = attrValues { + inherit (nix-config.homeManagerModules) yazi; + + youCanNameThisAnything = { + programs.btop.enable = true; + }; + }; + + environment.systemPackages = attrValues { + inherit (nix-config.packages.x86_64-linux) webp-thumbnailer; + + inherit (pkgs) ruby php; + }; + + nixpkgs.overlays = attrValues { + inherit (nix-config.overlays) kitty; + + exampleOverlay = final: prev: { + btop = prev.btop.overrideAttrs (oldAttrs: { + postInstall = (oldAttrs.postInstall or "") + /* bash */ '' + echo "#!/usr/bin/env sh" >> btop-overlay + echo "echo 'hello world'" >> btop-overlay + + install -Dm755 btop-overlay $out/bin/btop-overlay + ''; + }); + }; + }; +} diff --git a/example/flake.nix b/example/flake.nix new file mode 100644 index 00000000..8d1d924a --- /dev/null +++ b/example/flake.nix @@ -0,0 +1,25 @@ +{ + description = "An example of creating your own flake that extends this nix-config"; + + inputs = { + nix-config.url = "github:donovanglover/nix-config"; + }; + + outputs = { nix-config, ... } @ attrs: + let + inherit (nix-config.inputs) nixpkgs; + inherit (nixpkgs.lib) nixosSystem optional; + inherit (builtins) pathExists; + in + { + nixosConfigurations = { + hyprland = nixosSystem { + system = "x86_64-linux"; + specialArgs = attrs; + modules = [ + ./configuration.nix + ] ++ optional (pathExists ./hardware-configuration.nix) ./hardware-configuration.nix; + }; + }; + }; +}