nix-dotfiles/modules/core/kernel.nix
2026-04-23 07:28:36 -07:00

30 lines
764 B
Nix

{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.modules.core.kernel;
in {
options.modules.core.kernel = {
zswap = mkEnableOption "Enable zswap, a compressed RAM cache for swap pages";
v4l2 = mkEnableOption "Enable support for v4l2 loopback devices";
};
config = mkMerge [
{
boot.kernelPackages = mkDefault pkgs.linuxPackages_latest;
}
(mkIf cfg.zswap {
boot.kernelParams = [
"zswap.enabled=1"
"zswap.shrinker_enabled=1"
"zswap.max_pool_percent=20"
"zswap.compressor=zstd"
"zswap.zpool=zsmalloc"
];
})
(mkIf cfg.v4l2 {
boot.kernelModules = ["v4l2loopback"];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
})
];
}