{ config, pkgs, lib, ... }: let cfg = config.pub-solar.core; in with lib; { 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 = true; # Use latest LTS linux kernel by default kernelPackages = pkgs.linuxPackages_5_15; # Support ntfs drives supportedFilesystems = [ "ntfs" ]; }; }; }