at 24.11-pre 1.0 kB view raw
1{ config, lib, pkgs, ... }: 2let 3 cfg = config.services.zram-generator; 4 settingsFormat = pkgs.formats.ini { }; 5in 6{ 7 meta = { 8 maintainers = with lib.maintainers; [ nickcao ]; 9 }; 10 11 options.services.zram-generator = { 12 enable = lib.mkEnableOption "Systemd unit generator for zram devices"; 13 14 package = lib.mkPackageOption pkgs "zram-generator" { }; 15 16 settings = lib.mkOption { 17 type = lib.types.submodule { 18 freeformType = settingsFormat.type; 19 }; 20 default = { }; 21 description = '' 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 (isEnabled "ZRAM") 31 ]; 32 33 systemd.packages = [ cfg.package ]; 34 systemd.services."systemd-zram-setup@".path = [ pkgs.util-linux ]; # for mkswap 35 36 environment.etc."systemd/zram-generator.conf".source = settingsFormat.generate "zram-generator.conf" cfg.settings; 37 }; 38}