lol

nixos/zram-generator: init

Nick Cao a7e095d9 da167409

+43
+1
nixos/modules/module-list.nix
··· 1169 1169 ./services/system/self-deploy.nix 1170 1170 ./services/system/systembus-notify.nix 1171 1171 ./services/system/uptimed.nix 1172 + ./services/system/zram-generator.nix 1172 1173 ./services/torrent/deluge.nix 1173 1174 ./services/torrent/flexget.nix 1174 1175 ./services/torrent/magnetico.nix
+42
nixos/modules/services/system/zram-generator.nix
··· 1 + { config, lib, pkgs, ... }: 2 + let 3 + cfg = config.services.zram-generator; 4 + settingsFormat = pkgs.formats.ini { }; 5 + in 6 + { 7 + meta = { 8 + maintainers = with lib.maintainers; [ nickcao ]; 9 + }; 10 + 11 + options.services.zram-generator = { 12 + enable = lib.mkEnableOption (lib.mdDoc "Systemd unit generator for zram devices"); 13 + 14 + package = lib.mkPackageOptionMD pkgs "zram-generator" { }; 15 + 16 + settings = lib.mkOption { 17 + type = lib.types.submodule { 18 + freeformType = settingsFormat.type; 19 + }; 20 + default = { }; 21 + description = lib.mdDoc '' 22 + Configuration for zram-generator, 23 + see https://github.com/systemd/zram-generator for documentation. 24 + ''; 25 + }; 26 + }; 27 + 28 + config = lib.mkIf cfg.enable { 29 + system.requiredKernelConfig = with config.lib.kernelConfig; [ 30 + (isModule "ZRAM") 31 + ]; 32 + 33 + # Disabling this for the moment, as it would create and mkswap devices twice, 34 + # once in stage 2 boot, and again when the zram-reloader service starts. 35 + # boot.kernelModules = [ "zram" ]; 36 + 37 + systemd.packages = [ cfg.package ]; 38 + systemd.services."systemd-zram-setup@".path = [ pkgs.util-linux ]; # for mkswap 39 + 40 + environment.etc."systemd/zram-generator.conf".source = settingsFormat.generate "zram-generator.conf" cfg.settings; 41 + }; 42 + }