at 25.11-pre 1.1 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.zram-generator; 9 settingsFormat = pkgs.formats.ini { }; 10in 11{ 12 meta = { 13 maintainers = with lib.maintainers; [ nickcao ]; 14 }; 15 16 options.services.zram-generator = { 17 enable = lib.mkEnableOption "Systemd unit generator for zram devices"; 18 19 package = lib.mkPackageOption pkgs "zram-generator" { }; 20 21 settings = lib.mkOption { 22 type = lib.types.submodule { 23 freeformType = settingsFormat.type; 24 }; 25 default = { }; 26 description = '' 27 Configuration for zram-generator, 28 see https://github.com/systemd/zram-generator for documentation. 29 ''; 30 }; 31 }; 32 33 config = lib.mkIf cfg.enable { 34 system.requiredKernelConfig = with config.lib.kernelConfig; [ 35 (isEnabled "ZRAM") 36 ]; 37 38 systemd.packages = [ cfg.package ]; 39 systemd.services."systemd-zram-setup@".path = [ pkgs.util-linux ]; # for mkswap 40 41 environment.etc."systemd/zram-generator.conf".source = 42 settingsFormat.generate "zram-generator.conf" cfg.settings; 43 }; 44}