diff --git a/modules/nixos/misc/default.nix b/modules/nixos/misc/default.nix new file mode 100644 index 0000000..00c44fb --- /dev/null +++ b/modules/nixos/misc/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./docs.nix + ./zram.nix + ]; +} diff --git a/modules/nixos/misc/docs.nix b/modules/nixos/misc/docs.nix new file mode 100644 index 0000000..7dc4f7a --- /dev/null +++ b/modules/nixos/misc/docs.nix @@ -0,0 +1,19 @@ +{lib, ...}: let + inherit (lib.modules) mkForce; + inherit (lib.attrsets) mapAttrs; +in { + # we don't need docs where we're going! + documentation = mapAttrs (_: mkForce) { + enable = false; + dev.enable = false; + doc.enable = false; + info.enable = false; + nixos.enable = false; + man = { + enable = false; + generateCaches = false; + man-db.enable = false; + mandoc.enable = false; + }; + }; +} diff --git a/modules/nixos/misc/zram.nix b/modules/nixos/misc/zram.nix new file mode 100644 index 0000000..382864c --- /dev/null +++ b/modules/nixos/misc/zram.nix @@ -0,0 +1,24 @@ +{ + lib, + config, + ... +}: let + inherit (lib.modules) mkIf; +in { + # compress 3/4ths of ram to use as swap + # basically, get more memory per memory + zramSwap = { + enable = true; + algorithm = "zstd"; + memoryPercent = 75; # defaults to 50 + }; + + boot.kernel.sysctl = mkIf config.zramSwap.enable { + # zram is relatively cheap, prefer swap + "vm.swappiness" = 180; + "vm.watermark_boost_factor" = 0; + "vm.watermark_scale_factor" = 125; + # zram is in memory, no need to readahead + "vm.page-cluster" = 0; + }; +}