mirror of
https://github.com/donovanglover/nix-config.git
synced 2025-06-19 17:28:49 +02:00
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:
parent
46f778107b
commit
8c25c964da
43
example/configuration.nix
Normal file
43
example/configuration.nix
Normal 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
25
example/flake.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user