summaryrefslogtreecommitdiff
path: root/modules/nixos/traits
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/traits')
-rw-r--r--modules/nixos/traits/default.nix1
-rw-r--r--modules/nixos/traits/zram.nix24
2 files changed, 25 insertions, 0 deletions
diff --git a/modules/nixos/traits/default.nix b/modules/nixos/traits/default.nix
index d2a50e7..7b1d6fa 100644
--- a/modules/nixos/traits/default.nix
+++ b/modules/nixos/traits/default.nix
@@ -14,5 +14,6 @@
./tailscale.nix
./user-setup.nix
./users.nix
+ ./zram.nix
];
}
diff --git a/modules/nixos/traits/zram.nix b/modules/nixos/traits/zram.nix
new file mode 100644
index 0000000..337137a
--- /dev/null
+++ b/modules/nixos/traits/zram.nix
@@ -0,0 +1,24 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.traits.zram;
+in {
+ options.traits.zram = {
+ enable = lib.mkEnableOption "zram setup & configuration";
+ };
+
+ config = lib.mkIf cfg.enable {
+ # https://github.com/pop-os/default-settings/pull/163
+ # https://wiki.archlinux.org/title/Zram#Multiple_zram_devices
+ boot.kernel.sysctl = {
+ "vm.swappiness" = 180;
+ "vm.watermark_boost_factor" = 0;
+ "vm.watermark_scale_factor" = 125;
+ "vm.page-cluster" = 0;
+ };
+
+ zramSwap.enable = true;
+ };
+}