summaryrefslogtreecommitdiff
path: root/modules/nixos/traits/zram.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-02-11 02:45:20 -0500
committerseth <[email protected]>2024-02-11 02:45:20 -0500
commit055b48c798039558e2ffde83b589ef6856917bbf (patch)
tree5caf84a87eaa6a45cdf988586802dada19a2fffb /modules/nixos/traits/zram.nix
parentdacdc6dc5680444d5a31c0c1b3f5a9998682316e (diff)
nixos/zram: init
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;
+ };
+}