summaryrefslogtreecommitdiff
path: root/templates/nixos/modules
diff options
context:
space:
mode:
authorseth <[email protected]>2023-08-20 19:09:11 -0400
committerseth <[email protected]>2023-08-20 19:09:11 -0400
commit47f3297d05403eb79ce41a0e7c6c9cb889d635bb (patch)
tree3c81127ffcc570517e99d9670833d61a25c4ac0c /templates/nixos/modules
parent6c0a1f9a2242bec3a024f3899265a100700d8932 (diff)
templates/nixos: add basic nix config
Diffstat (limited to 'templates/nixos/modules')
-rw-r--r--templates/nixos/modules/basic.nix44
-rw-r--r--templates/nixos/modules/default.nix5
2 files changed, 49 insertions, 0 deletions
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
+ ];
+}