{ config, pkgs, lib, ... }: with lib; let cfg = config.pub-solar.core; in { options.pub-solar.core.iso-options.enable = mkOption { type = types.bool; default = false; description = "Feature flag for iso builds"; }; options.pub-solar.core.disk-encryption-active = mkOption { type = types.bool; default = true; description = "Whether it should be assumed that there is a cryptroot device"; }; config = { boot = { # Enable plymouth for better experience of booting plymouth.enable = mkIf (!cfg.lite) (lib.mkDefault true); # Mount / luks device in initrd # Allow fstrim to work on it. # The ! makes this enabled by default initrd = mkIf (!cfg.iso-options.enable && cfg.disk-encryption-active) { luks.devices."cryptroot" = { allowDiscards = true; }; }; loader.systemd-boot.enable = lib.mkDefault true; # Use latest linux kernel by default #kernelPackages = lib.mkDefault pkgs.linuxPackages_6_1; kernelPackages = let linux_6_4_pkg = { fetchurl, buildLinux, ... } @ args: buildLinux (args // rec { version = "6.4-rc0"; modDirVersion = "6.3.0"; src = fetchurl { url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-master.tar.gz"; sha256 = "sha256-RpeMCBannCFW/Q0t6ZYtyJlvMdVXnr7HfISJQsnyQBo="; }; kernelPatches = []; ignoreConfigErrors = true; extraMeta.branch = "6.4"; } // (args.argsOverride or {})); linux_6_4 = pkgs.callPackage linux_6_4_pkg {}; in pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor linux_6_4); # Support ntfs drives supportedFilesystems = ["ntfs"]; }; }; }