summaryrefslogtreecommitdiff
path: root/modules/nixos/traits/zram.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/traits/zram.nix')
-rw-r--r--modules/nixos/traits/zram.nix24
1 files changed, 24 insertions, 0 deletions
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;
+ };
+}