diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/nixos/archetypes/server.nix | 2 | ||||
| -rw-r--r-- | modules/nixos/traits/default.nix | 1 | ||||
| -rw-r--r-- | modules/nixos/traits/zram.nix | 24 |
3 files changed, 27 insertions, 0 deletions
diff --git a/modules/nixos/archetypes/server.nix b/modules/nixos/archetypes/server.nix index 08b2d65..e42e3d4 100644 --- a/modules/nixos/archetypes/server.nix +++ b/modules/nixos/archetypes/server.nix @@ -40,6 +40,8 @@ in { users = { hostUser.enable = true; }; + + zram.enable = true; }; _module.args.unstable = inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; 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; + }; +} |
