feat: Add example config

Will extend upon this later, but this basically makes it possible to
guarantee that the flake can be used inside another flake and be
customized as expected.

Note that hardware-configuration.nix is optional if you're just using
the configuration for virtual machines and containers, which is why it's
optional here. A default file isn't provided to help users understand
that they have to bring their own.
This commit is contained in:
Donovan Glover 2024-04-06 05:48:42 -04:00
parent 46f778107b
commit 8c25c964da
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
2 changed files with 68 additions and 0 deletions

43
example/configuration.nix Normal file
View File

@ -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
'';
});
};
};
}

25
example/flake.nix Normal file
View File

@ -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;
};
};
};
}