summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--templates/nixos/flake.nix10
-rw-r--r--templates/nixos/modules/basic.nix44
-rw-r--r--templates/nixos/modules/default.nix5
3 files changed, 57 insertions, 2 deletions
diff --git a/templates/nixos/flake.nix b/templates/nixos/flake.nix
index 2b464cd..440a668 100644
--- a/templates/nixos/flake.nix
+++ b/templates/nixos/flake.nix
@@ -9,11 +9,17 @@
};
};
- outputs = {nixpkgs, ...} @ inputs: {
+ outputs = {
+ nixpkgs,
+ self,
+ ...
+ } @ inputs: {
nixosConfigurations."myHostname" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
- modules = [./configuration.nix];
+ modules = [./configuration.nix self.nixosModules.default];
specialArgs = inputs;
};
+
+ nixosModules.default = import ./modules;
};
}
diff --git a/templates/nixos/modules/basic.nix b/templates/nixos/modules/basic.nix
new file mode 100644
index 0000000..c1b5ebc
--- /dev/null
+++ b/templates/nixos/modules/basic.nix
@@ -0,0 +1,44 @@
+{
+ config,
+ lib,
+ inputs,
+ ...
+}: let
+ inherit (builtins) attrNames map;
+ inherit (lib) mkDefault mkEnableOption mkIf mkOption types;
+ cfg = config.getchoo.basicConfig;
+
+ mapInputs = fn: map fn (attrNames inputs);
+in {
+ options.getchoo.basicConfig = {
+ enable = mkEnableOption "getchoo's basic config" // {default = true;};
+ channelPath = {
+ enable =
+ mkEnableOption "enable channels"
+ // {default = true;};
+ dirname = mkOption {
+ type = types.str;
+ default = "/etc/nix/channels";
+ description = "directory where channels are saved";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ nix = {
+ gc = {
+ automatic = mkDefault true;
+ options = mkDefault "-d --delete-older-then 2d";
+ };
+
+ settings = {
+ auto-optimise-store = true;
+ experimental-features = ["nix-command" "flakes" "auto-allocate-uids" "repl-flake"];
+ };
+
+ nixPath = mapInputs (i: "${i}=${cfg.channelPath.dirname i}");
+ };
+
+ systemd.tmpfiles.rules = mapInputs (i: "L+ ${cfg.channelPath i} - - - - ${inputs.${i}.outPath}");
+ };
+}
diff --git a/templates/nixos/modules/default.nix b/templates/nixos/modules/default.nix
new file mode 100644
index 0000000..ae107c1
--- /dev/null
+++ b/templates/nixos/modules/default.nix
@@ -0,0 +1,5 @@
+_: {
+ imports = [
+ ./basic.nix
+ ];
+}